Я понимаю, что если у меня есть маршрут, скажем, 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?
Это единственное, о чем я могу думать, и я не могу найти документацию, объясняющую, что происходит.
PS Я также не могу найти какую-либо документацию, касающуюся соглашения о присвоении имен переменных $ Class, т.е. RoadmapCourse $ roadmapcourse, я понимаю, что он делает, просто не могу найти никаких документов.
PPS Я также могуне могу найти документОбъяснение объяснения «docblocks» над методом контроллера, например,
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\RoadmapCourse $roadmapcourse
* @return \Illuminate\Http\Response
*/
И что эти объявления '@param' на самом деле для ??
Любая помощь или ссылки на документы будут оценены (япросматривал документы Laravel, но не могу найти ни упоминания, ни чего-либо из этого, поэтому отправляю сюда)
Спасибо!