Laravel notification 数据库通知修改 notifiable_id 关联字段为其他字段
laravel notification数据库通知
数据库字段notifiable_id关联默认关联模型的id
怎么修改为其他字段?
关于 LearnKu
同问!
~~~~我是通过改源码方式的
Illuminate\Notifications\Channels\DatabaseChannel.php
添加了一个notifiable_id和getNotifiable_id方法
然后使用
我也不想动vendor啊 可是。。。真好用
'notifiable_id'=> $this->getNotifiable_id($notifiable, $notification)
别要被误会 改notifiable_id是没有用的
所以我传递的是$notifiable的地址
只要调用$this->getNotifiable_id($notifiable, $notification)方法就可以了
因为懒 直接在这个reutnr [ ];里面调用这个方法了
别像我上面那样改 非常的不好 使用查询修改的时候有坑的
有更好的办法
像这样就行了 不用改vendor

@lyxxxh 请问 如果是使用Notifiable trait 的 notify 应该怎么修改呢? 还有您能解释一下 传递给subremind 的参数为什么不是一个实例? 以及各个参数的含义。
@swswswlove
如果是使用 Notifiable trait 的 notify 应该怎么修改呢?
这个我不知道
new SubRemind(就是我自定义传递的数据)
传递到SubRemind的toArray($notifiable)的方法
只是自定义notifications表的data字段的数据
这些我建议你看下教程
[ Laravel 5.8 文档 ] 进阶系列 —— 通知
问题
数据库通知修改 notifiable_id 关联字段为其他字段
解释
因为notifiable_id是使用id做notifiable_id
不可以更改成为其他字段
notifiable_id是怎么取的
notifiable_id是用 当前模型 的 id
例:这个$user从User模型查询就是用users表的id
例: 这个$user从UserSub();就是user_subs表的id
解决 (换不了其他字段 也不算解决)
只能查询那些用户订阅了
然后$user = User::WhereIn(订阅的用户)->get();
(notifiable_id当前模型的id 不可以换成其他字段 详细去看源码吧 可能我当时没看仔细)