@Dimon3x

Почему выводит ошибку Call to undefined method routeNotificationFor()?

Делаю уведомления.

Так всё нормально

public function sendNotification()
    {
         $user = User::find(1);
        
        
        $details = [
            'user_id' => Auth::id(),
            'comment_id' => 4444,
        ];
  
        Notification::send($user, new MyFirstNotification($details));
   
        dd('done');
    }


но если
$user = User::find(1);

заменить на

$user = Comment::find(1);

то выводит почему-то ошибку

Call to undefined method App\Comment::routeNotificationFor()


Я так понимаю, первый аргумент для Notification::send отвечает за notifiable_type?
  • Вопрос задан
  • 997 просмотров
Пригласить эксперта
Ответы на вопрос 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
Смотрите ответ Алексей Скляров . Нотификации в Laravel заточены под отправку юзерам, отправить их "глобально" нельзя, только если буквально отправить каждому юзеру отдельную нотификацию. В виду этого, модель User по дефолту юзает трейт Notifiable, который внутри и содержит метод routeNotificationFor, отвечающий за связыванние данных юзера (номер телефона, эмейл, релейшены в базе) и самих нотификаций.

Да, первый аргумент - notifiable_id & notifiable_type. Собственно, по дефолту это всегда айди юзера и значение из морф мапа для модели юзера, либо неймспейс + название класса юзера.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы