一对多关系使用附加或保存

时间:2017-01-20 12:23:08

标签: php laravel laravel-5.3

我有两个名为notification和alerFrequencies表的表,它们分别有很多关系。 notification_idalertFrequencies表中的外键。通知表包含id和网站网址字段,alerFrequncies表格包含idnotification_idcreated_at字段。

我正在尝试使用以下函数自动将数据插入alertFrequencies表,但未能这样做,它抱怨附加功能?

private function add(Notification $notification,alertFrequency $alert, $alertTime){
    $notification->alertFrequencies()->attach($alert,
                            ['created_at'=>date($alertTime)]);
}

2 个答案:

答案 0 :(得分:0)

Attach用于创建多对多关系。

要创建一对多关系,只需设置notification_id对象的alertFrequency并保存即可。

答案 1 :(得分:0)

使用update()代替attach(),因为它是one to many关系。在many to many ralations中使用附加

private function add(Notification $notification,alertFrequency $alert, $alertTime){ 
    $notification->alertFrequencies()->update(['created_at'=>date($alertTime)]); 
}

编辑---

created_at模型中的updated_at数组中回答您的评论register $datesNotification字段。

protected $dates = [
    'created_at',
    'updated_at'
];

使用Carbon

按如下方式保存数据时
    $notification->alertFrequencies()->update(['created_at'=>Carbon::parse($alertTime)]);