Уведомления о комментариях не работает в laravel

ошибка
введите описание изображения здесь

Я пытаюсь отправить уведомления о событии, когда кому-то нравится и комментировать его пост, уведомления о комментариях и лайках работают
вот мой класс уведомлений.
у меня есть ошибка в моем CommentController if ($event->user_id != $comment->user_id)

Класс NewCommentEvent расширяет Уведомление
{

использовать Queueable;
защищенный комментарий $;
/ **
* Создать новый экземпляр уведомления.
*
* @return void
* /
публичная функция __construct ($ comment)
{
$ this-> comment = $ comment;
}

/ **
* Получить каналы доставки уведомления.
*
* @param mixed $ уведомляемый
* @return array
* /
публичная функция через ($ уведомляемый)
{
return ['database'];
}

/ **
* Получить массив представления уведомления.
*
* @param mixed $ уведомляемый
* @return array
* /
публичная функция toDatabase ($ notifiable)
{
вернуть [
'comment' => $ this-> comment,
'event' => Event :: find ($ this-> comment-> event_id),
'user' => User :: find ($ this-> comment-> user_id)
];
}

/ **
* Получить массив представления уведомления.
*
* @param mixed $ уведомляемый
* @return array
* /
публичная функция toArray ($ notifiable)
{
вернуть [
//
];
}
}

Мой код функции контроллера для уведомлений о комментариях

магазин публичных функций (CommentRequest $ request)
{


$ event = Event :: findOrFail ($ request-> event_id);


Комментарий :: создать ([
'comment' => $ request-> comment,
'user_id' => Auth :: id (),
'event_id' => $ event-> id
]);

if ($ event-> user_id! = $ comment-> user_id) {
$ user = User :: find ($ event-> user_id);
$ user-> notify (new NewCommentEvent ($ comment));
}



Toastr :: success ('Комментировать сообщение с успехом', '', ["positionClass" => "toast-top-center"]);
return redirect () -> back ();
}

мой CommenRequest

пространство имен App \ Http \ Requests;

использовать Illuminate \ Foundation \ Http \ FormRequest;
использовать Освещение \ Поддержка \ Фасады \ Auth;

Класс CommentRequest расширяет FormRequest
{
/ **
* Определите, авторизован ли пользователь сделать этот запрос.
*
* @return bool
* /
публичная функция authorize ()
{
return Auth :: check ();
}

/ **
* Получить правила проверки, которые применяются к запросу.
*
* @return array
* /
правила публичных функций ()
{
вернуть [
'comment' => 'обязательно | max: 2000',
];
}
}

1

Решение

В вашем контроллере: переменная $comment не определено.

Из документов Laravel:

create Метод возвращает сохраненный экземпляр модели.

так что решение таково:

$comment = Comment::create([
'comment' => $request->comment,
'user_id' => Auth::id(),
'event_id' => $event->id
]);
1

Другие решения

Вы не определили свой комментарий $, вы только что создали комментарий. Это выбрасывает ошибку

$comment = Comment::create([
.
.
]);

Это исправит вашу проблему

0

Сообщение об ошибке было ясно. $comment не определено Замените код вашего контроллера следующим:

public function store(CommentRequest $request)
{


$event = Event::findOrFail($request->event_id);

// defined comment here
$comment = Comment::create([
'comment' => $request->comment,
'user_id' => Auth::id(),
'event_id' => $event->id
]);

if ($event->user_id != $comment->user_id) {
$user = User::find($event->user_id);
$user->notify(new NewCommentEvent($comment));
}



Toastr::success('Comment post with success','', ["positionClass" => "toast-top-center"]);
return redirect()->back();
}
0
По вопросам рекламы [email protected]