Как передать количество уведомлений в представления?

Я хочу отобразить количество новых уведомлений, как показано на рисунке ниже.

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

Как вы понимаете, чтобы отобразить это число, необходимо, чтобы каждое действие проходило $notificationsNumberв каждое представление . Есть ли способ сделать это иначе, чем добавить эту функциональность к каждому действию отдельно?

1 ответ

  1. Вы должны использовать view composer: https://laravel.com/docs/master/views#view-composers

    Ваш может выглядеть примерно так:

    public function __construct(NotificationsRepository $notifications)
    {
        // Dependencies automatically resolved by service container...
        $this->notifications = $notifications;
    }
    
    public function compose(View $view)
    {
        $view->with('notificationsNumber', $this->notifications()->where('read',false)->get()->count());
    }
    

    Затем вы включаете его в поставщика услуг и привязываете к своему menuпредставлению. Laravel запускает его и добавляет $notificationsNumberв любое время menuотображения