我正在尝试使用这样的同步功能:
$round->competitors()->sync($fighters);
$ fighter是:
Collection {#339 ▼
#items: array:3 [▼
0 => 5
1 => null
2 => 6
]
}
当它到达null元素时,我得到:
QueryException in Connection.php line 647:
SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: '' for column 'competitor_id' at row 1 (SQL: insert into `round_competitor` (`competitor_id`, `round_id`) values (, 29))
如果我尝试,我会得到相同的结果:
$round->competitors()->sync([null, null]);
但如果我尝试:
$round->competitors()->attach(null);
它没有任何问题???
为什么会这样?
答案 0 :(得分:1)
在filter()
上致电$fighters
,以便删除null
值。
$round->competitors()->sync($fighters->filter());
答案 1 :(得分:0)
如果您这样做:$round->competitors()->attach(null);
是否与您不做任何附加相同?这可能就是它工作的原因!!