Я понимаю, что если у меня есть маршрут, скажем, api/users/{id}, то он будет передан функции контроллера как параметр $id.
Однако, если у меня есть маршрут API:
Route::patch('roadmap/{roadmapcourse}', 'RoadmapCourseController@update');
и метод контроллера:
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\RoadmapCourse $roadmapcourse
* @return \Illuminate\Http\Response
*/
public function update(Request $request, RoadmapCourse $roadmapcourse)
{
$data = $request->validate([
'user_id' => 'required|integer',
'course_id' => 'required|integer',
'stage' => 'required|integer',
'title' => 'required|string',
'creator' => 'required|string',
'url' => 'required|string',
'hours' => 'required',
'completed' => 'required|boolean'
]);
$roadmapcourse->update($data);
return response($roadmapcourse, 200);
}
Затем я отправляю запрос на http://projectname/api/roadmap/2 — тогда 2 передается как параметр функции обновления, не так ли?
Но, судя по внешнему виду функции обновления, ожидается экземпляр RoadmapCourse, а не одна цифра, например «2»?
Ищет ли Laravel в фоновом режиме запись в базе данных для RoadmapCourse с идентификатором 2, а затем вводит ее в функцию как $roadmapcourse?
Это единственное, о чем я могу думать, и я не могу найти никакой документации, объясняющей, что происходит.
P.S. Я также не могу найти никакой документации, касающейся соглашения об именах переменных класса $variable, то есть RoadmapCourse $roadmapcourse, я понимаю, что он делает, просто не могу найти никаких документов.
PPS Я также не могу найти никакой документации, объясняющей «докблоки» над методом контроллера, например.
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\RoadmapCourse $roadmapcourse
* @return \Illuminate\Http\Response
*/
И для чего на самом деле нужны эти объявления '@param'??
Будем признательны за любую помощь или ссылки на документы (я просматривал документы Laravel, но не могу найти ни одного упоминания или какой-либо из этих вещей, поэтому публикую здесь)
Спасибо!
$roadmapcourse
как объектRoadmapCourse
. Если бы у вас был простоRequest $request, $roadmapcourse
, вы могли бы получить доступ к$roadmapcourse
как к стандартной переменной, которая была бы тем, что вы указали в URL-адресе, в данном случае 2 - person Andy Holmes   schedule 11.10.2019