Есть у меня код, в котором вроде бы все понятно.
/**
* Display the specified resource.
*
* @param string $slug
* @return \Illuminate\View\View
*/
public function show(string $slug): \Illuminate\View\View
{
$post = Post::where('slug', $slug)
->where('status', 1) //
->with('reviews')
->firstOrFail();
return view('post.show', compact('post'));
}
Однако, более опытные коллеги, сделали замечание, что лучше бы применить Route Model Binding. Говорят, должна улучшится читаемость да и код будет проще.
Однако, при таком подходе, мне придется:
1.) В модели указать Sling как ключ для поиска.
2.) Отдельно подгрузить отношения через load().
3.) Прописать в модели resolveRouteBinding(), дабы можно было применить where().
Собственно... Кода становится не меньше и теперь он не так очевиден т.к разбросан по файлам, а не прописан в одном месте. Так в чем преимущества Route Model Binding?