亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel 通知存儲附加 ID 字段

Laravel 通知存儲附加 ID 字段

PHP
桃花長相依 2022-01-14 15:06:00
所以我設置了 Laravel 通知,它工作得很好。但是,我已經擴展了遷移以包含一個額外的 id 字段:$table->integer('project_id')->unsigned()->nullable()->index();問題是,我不知道如何實際設置該project_id字段。我的通知如下所示:<?phpnamespace App\Notifications\Project;use App\Models\Project;use App\Notifications\Notification;class ReadyNotification extends Notification{    protected $project;    public function __construct(Project $project)    {        $this->project = $project;    }    public function toArray($notifiable)    {        return [            'project_id' => $this->project->id,            'name' => $this->project->full_name,            'updated_at' => $this->project->updated_at,            'action' => 'project-ready'        ];    }}所以是的,我可以將它存儲在數據中,但是如果我想通過“項目”而不是“用戶”或“通知”專門清除通知怎么辦。data例如,如果他們刪除項目,我希望清除它的通知,但除非我在列上進行一些通配符搜索,否則無法訪問它。那么無論如何要project_id在通知中插入它嗎?
查看完整描述

1 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

您可以創建一個觀察者來自動更新該字段。


NotificationObserver.php


namespace App\Observers;


class NotificationObserver

{

    public function creating($notification)

    {

        $notification->project_id = $notification->data['project_id'] ?? 0;

    }

}

事件服務提供者.php


use App\Observers\NotificationObserver;

use Illuminate\Notifications\DatabaseNotification;


class EventServiceProvider extends ServiceProvider

{

    public function boot()

    {

        parent::boot();


        DatabaseNotification::observe(NotificationObserver::class);

    }

}

您應該能夠使用默認模型訪問表以執行操作。


DatabaseNotification::where('project_id', 11)->delete();


查看完整回答
反對 回復 2022-01-14
  • 1 回答
  • 0 關注
  • 190 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號