我可以将模型关联到 laravel 中的通知表吗?

Posted

技术标签:

【中文标题】我可以将模型关联到 laravel 中的通知表吗?【英文标题】:Can I Associate a Model to the notifications table in laravel? 【发布时间】:2018-07-17 16:27:51 【问题描述】:

我一直在处理通知并且很快就完成了,除非我觉得需要删除通知并将其与帖子相关联,有什么方法可以将模型关联到 notifications 表? 我想在创建通知模型后使用模型中的$table属性。

编辑: 或者我可以在删除帖子时删除通知吗?

【问题讨论】:

通知和帖子的关系设置了吗? 不,通知和帖子之间没有建立关系。我需要 Moel 来设置链接,这就是我所要求的。有什么方法可以创建通知表模型 那么您如何从相关帖子中获取通知? Check this answer 我存储了帖子的ID。 Laravel 将您想要的所有内容存储在通知表的 data 字段中。我从该字段中获取 ID 并用于重定向和其他目的 【参考方案1】:

当然可以。 php artisan make:model Notification

然后更改模型以扩展 laravel 的默认通知模型。

    <?php

    namespace App;

    use Illuminate\Notifications\DatabaseNotification;

    class Notification extends DatabaseNotification
    
        public function users()
        
            return $this->belongsTo(User::class, 'notifiable_id');
        
    

然后您可以在此通知模型中定义您的关系。

或者,您可以使用用户发布关系删除通知

$post-&gt;user-&gt;notifications-&gt;delete()

【讨论】:

晚了一年半,但仍然相关。谢谢!。 我要指出,任何模型都可以具有 Notifiable trait,因此虽然大多数应用程序只会使用 User 进行通知,但如果另一个模型具有 notifiable trait,这可能会干扰此功能。跨度> 另外,对于最新版本的Larvel(8+),请记住将其命名为App\Models。 @DanS 是的,在这种情况下,您只需要更改与具有通知特征的模型的关系。

以上是关于我可以将模型关联到 laravel 中的通知表吗?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:自定义或扩展通知 - 数据库模型

我可以使用浏览器工具将数据附加到 Google Big 查询中的现有表吗?

Laravel使用数据库队列给用户发送通知

Laravel使用数据库队列给用户发送通知

您可以将文件展平到 Snowflake 中的外部表吗?

将模型相互关联 Laravel