Laravel: customize or extend notifications - database model

前端 未结 5 1390
我在风中等你
我在风中等你 2020-12-03 08:11

IMHO, the current Database channel for saving notifications in Laravel is really bad design:

  • You can\'t use foreign key cascades on items for cleaning up noti
5条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-03 08:53

    I solved a similar problem by customizing notification class:

    create the class for this action:

    artisan make:notification NewQuestion
    

    inside it:

    public function __construct($user,$question)
        {
            $this->user=$user;
            $this->question=$question;
        }
    
    
    ...
    
        public function toDatabase($notifiable){
            $data=[
                'question'=>$this->(array)$this->question->getAttributes(),
                'user'=>$this->(array)$this->user->getAttributes()
            ];
    
            return $data;
        }
    

    then you can access proper data in view or controller like this:

    @if($notification->type=='App\Notifications\UserRegistered')
    New question from {{$notification->data['user']['name']}}
    @endif
    

提交回复
热议问题