Laravel автоматически разрешает модели Eloquent, определенные в маршрутах или действиях контроллера, чьи имена переменных с подсказками типов соответствуют имени сегмента маршрута
В этом случае вам не нужно использовать find()
, поскольку Laravel автоматически разрешит модель для вас из-за Неявного связывания модели
Попробуйте:
public function show(Post $post)
{
return view('posts.show', compact('post'));
}
Причина, по которой find()
вызвал проблему, заключается в том, что модель Eloquent реализует интерфейс Arrayable
, и это заставит метод find()
предположить, что вы пытаетесь найти более одной модели, и в конечном итоге вернет коллекция.