Laravel 5.4, 5.3: personalizar ou estender notificações - modelo de banco de dados

IMHO, o canal atual do banco de dados para salvar notificações no Laravel é um design muito ruim:

Você não pode usar cascatas de chaves estrangeiras em itens para limpar as notificações de um item excluído, por exemploProcurando atributos customizados nodata coluna (convertida em Matriz) não é ideal

Como você estenderia a extensão doDatabaseNotification Modelo no pacote do fornecedor?

Eu gostaria de adicionar colunasevent_id, question_id, user_id (o usuário que criou a notificação) etc ... para o laravel padrãonotifications mesa

Como você substitui osend função para incluir mais colunas?

No:

vendor/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php

O código:

class DatabaseChannel
{
 /**
  * Send the given notification.
  *
  * @param  mixed  $notifiable
  * @param  \Illuminate\Notifications\Notification  $notification
  * @return \Illuminate\Database\Eloquent\Model
  */
 public function send($notifiable, Notification $notification)
 {
    return $notifiable->routeNotificationFor('database')->create([
        'id' => $notification->id,
        'type' => get_class($notification),

      \\I want to add these
        'user_id' => \Auth::user()->id,
        'event_id' => $notification->type =='event' ? $notification->id : null, 
        'question_id' => $notification->type =='question' ? $notification->id : null,
      \\End adding new columns

        'data' => $this->getData($notifiable, $notification),
        'read_at' => null,
    ]);
 }
}

questionAnswers(4)

yourAnswerToTheQuestion