#laravel #mount
#laravel #монтировать
Вопрос:
Я использую laravel 8 jetstream с livewire. У меня есть компонент posts с отображением списка сообщений, я бы хотел, чтобы при нажатии открывалась новая страница только с этим сообщением. У меня есть mount () идентификатор этого сообщения и создать для него маршрут, но он не работает. может кто-нибудь опубликовать простой пример, который я должен следовать следующему руководству http://itsolutionstuff.com/post/laravel-8-livewire-crud-with-jetstream-tailwind-cssexample.html
Комментарии:
1. Прочитайте документацию laravel-livewire.com/docs/2.x/rendering-components
2. класс ShowPost расширяет компонент { public $post; публичная функция mount($id) { $this->post = Post::find($id); } НО КАК НАПИСАТЬ РЕНДЕРИНГ?????
Ответ №1:
Для рендеринга компонентов в Livewire вам необходимо определить render
метод в вашем компоненте Livewire. В этом методе вы указываете, какое представление компонента будет отображаться с помощью массива в качестве второго параметра view()
функции. Дополнительная информация здесь: https://laravel-livewire.com/docs/2.x/rendering-components#render-method
public function mount ($id)
{
$this->post = Post::find($id);
}
public function render()
{
return view('path.to.view', [
'post' => $this->post,
]);
}
Комментарии:
1. Верно, но факт в том, что $ id находится в mount ($ id) и недоступен?
2. Вам нужно вручную установить для него свойство в вашем классе, если вы не используете привязку модели маршрута. Смотрите Обновленный ответ.