大家好,我有一个问题,我现在已经苦苦挣扎了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核心代码,所以请帮助我如何访问自定义添加的字段并将数据存储在其中。
提前致谢,对不起,我很抱歉。