【发布时间】:2017-08-18 07:29:13
【问题描述】:
我在 eloquent 方面遇到问题。 这是一些代码:
$BaseTask = $TaskClass::create([
'user_id' => $User->id,
'task_type' => $this->task_type,
'name' => $this->settings['name'],
'task_' . $this->social_network . '_list_id' => $task_list_id,
]);
$BaseTask->accounts()->attach($account_id);
问题是 SOMETIMES 最后一行因外键约束而失败 - 它尝试使用查询更新数据透视表
insert into pivot ('account_id', 'task_id') values (289530, 0))
不知何故:
$BaseTask->id=0;
但我有财产:
$incrementing=true;
也许有人遇到过这样的问题,任何帮助表示赞赏!
【问题讨论】:
-
在您的数据库上配置正确吗?
-
是的,因为这种情况只是偶尔发生(大约 5% 的情况),也许有一些 db 的不良行为?
-
attach() 方法只适用于多对多,其他关系有 save() 和 associate()
-
是的,我有多对多的关系
-
@МаксимСарвилин 试试 $BaseTask->accounts()->associate($account_id);让我知道工作与否
标签: php mysql laravel eloquent laravel-5.2