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

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

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

【问题讨论】:

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

标签: php laravel laravel-5 eloquent


【解决方案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 是的,在这种情况下,您只需要更改与具有通知特征的模型的关系。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-25
  • 2016-03-30
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 2021-01-09
  • 1970-01-01
相关资源
最近更新 更多