如何修改Laravel的通知表?

时间:2018-06-07 20:35:34

标签: laravel laravel-5 models laravel-migrations laravel-notification

大家好,我有一个问题,我现在已经苦苦挣扎了2个星期,无法解决

我正在建立一个社交媒体网站你可以把它想象成Facebook我会举一个例子Facebook我想在我自己的网站上实现这是我正在讨论的问题。

想象一下,你在Facebook时间线上贴了一个帖子,一个名叫Tony的朋友就像你的帖子一样,你会收到Tony喜欢你帖子的通知,但如果Tony不同于帖子,Facebook会从你的通知列表中删除该通知,因为它是不再存在吧!!!

我想创建我已经做过的同样的事情,但手动我还没有使用Laravel通知我想利用它们所以我有广播的力量等等,而不是继续产生大量的事件

以我的自定义方式,我创建了一个通知表,它将存储已发出通知的user_id,我称之为dispatcher_id,用户通知我称之为user_id,以及更多数据,例如发送通知的post_id,所以我一旦他点击通知等,就可以将目标用户重定向到帖子页面。

现在我想摆脱我创建的通知表并使用Laravel通知表,所以我使用此命令生成表

php artisan notifications:table

这将生成通知表然后我导航到创建的迁移并添加了一些自定义字段,比如post_id让我们说,之后我创建了一个名为PostLikedNotification的通知类我在我的通知中将选项设置为via方法中的数据库类

public function via($notifiable)
{
    return ['database'];
}

然后在toArray方法中我尝试返回像这样的字段

public function toArray($notifiable){
    return [
        'post_id' => 1,
    ];
} 

但是没有用,我也尝试使用像这样的$ notifiable参数

public function toArray($notifiable){
    $notifiable->post_id = 1;
}

它也不起作用所以我在toDatabase方法中尝试了相同的两种技术,遗憾的是它也没有工作

经过大量搜索后,我发现负责通知的模型称为" DatabaseNotification" ,它位于这条道路上:

vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php

但我不会乱用Laravel核心代码,所以请帮助我如何访问自定义添加的字段并将数据存储在其中。

提前致谢,对不起,我很抱歉。

0 个答案:

没有答案