如何通过Laravel中的toArray / toDatabase函数指定通知属性?

时间:2017-01-24 03:01:54

标签: laravel laravel-5 notifications eloquent laravel-5.3

Laravel Notification允许使用notificationstoArraytoDatabase表中保存数据。但是documentation并没有澄清两件事。

  1. toArray()表中存储数据时,toDatabase()notifications之间有什么区别?

  2. 我在link表中添加了一个附加属性(notifications),但是当我这样做时:

    public function toDatabase() {
        return [
            'data'=>'My Data',
            'link'=>'My Link'
        ];
    }
    
  3. 我最终将数组序列化为data属性。使用toArray()toDatabase()函数保存属性的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

1)使用的方法由via()返回数组确定:

return ['mail', 'database', 'broadcast'];

当您仅使用toArray时,它将使用该单个数据数组进行数据库和广播通知。如果您希望为每个数组定义单独的数组,则可以定义toDatabase()和toBroadcast()方法。

2)由于通知内置于Laravel的核心 - 没有简单的方法可以改变其模型 - 即添加可添加的可填充字段。 通知要求您将添加字段添加到“数据”数组。顺便提一下,仍然可以通过以下方式访问:

$notification->my_custom_data_value