Как мне вызвать with
непосредственно для объекта, который был автоматически выбран по маршруту с такими же результатами, как если бы он был выбран через where
?
Позвольте мне объяснить через код!
Мой маршрут (одинаковый в обоих):
Route::get('post/{post}', 'PostsController@show');
Альтернатива 1:
Мой контроллер:
public function show(Post $post){
$postWithComments = Post::where('id', $post->id)->with('comments')->first();
}
Вывод: комментарии к предполагаемому посту.
Альтернатива 2:
Мой контроллер:
public function show(Post $post){
$postWithComments = $post->with('comments')->first();
}
Вывод: комментарии к первому из ВСЕХ сообщений.
Желаемый результат: аналогичен альтернативному.
Как я могу изменить запрос в альтернативе 2 для вывода так же, как в альтернативе 1?
Я думаю, что нет необходимости сначала делать запрос where
, так как объект уже загружен. Поэтому я думаю, что я хотел бы сделать это, чтобы уменьшить количество вызовов БД. Или я не так думаю?