Laravel Livewire получить идентификатор текущей страницы - PullRequest
1 голос
/ 12 марта 2020

В представление я включаю компонент livewire, например, так:

<livewire:search-comments :post="$post">

Я могу пройти в посте, как показано выше. Но проблема в том, что это делается только на mount():

public function mount($post)
{
    $this->post = $post;
}

В render(), у меня есть:

$comments = $this->post->comments()
    ->where('comment', 'like', "%{$this->search}%")
    ->get()

Проблема в том, что мне нужен доступ $post при каждом render() вызове, поскольку искомые комментарии привязаны к сообщению, в котором находится пользователь. Я мог бы передать идентификатор сообщения в скрытом поле, но это не похоже на правильное (и безопасное ...?) Решение.

1 Ответ

0 голосов
/ 13 марта 2020

Есть разные способы достижения этого. Как вы можете создать событие, когда пользователь пытается загрузить новое сообщение. затем используйте magi c метод $ refre sh, чтобы обновить sh компонент.

  protected $listeners = [
        'newPostLoad' => '$refresh',
    ];

или,

вы можете передать идентификатор записи во время использования попытаться загрузить новое сообщение. вот так:

// as per your snippets above I assume ur blade has post collection which holds id for each posts.


wire:click=loadNewPost(id) 

тогда вы можете сбросить ваш $ this-> post внутри функции loadNewPost.

Надеюсь, это поможет. дай мне знать. Я уточню снова

...