2
基本上,我尝试更新包含两个主键的表中的一行。主键是Trad_id
和Trad_lang
。对于每个不同的行,我想用正确的数据进行更新,但Eloquent会更新具有相同Trad_id
的所有行。雄辩地更新所有行
为什么雄辩更新所有行?
$tradInt = \Model\Traduction::where('Trad_id', $reference->Trad_id)->where("Trad_lang", "INTERNE")->first();
$tradInt->Trad_text = 'ABC';
$tradInt->save();
$tradExt = \Model\Traduction::where('Trad_id', $reference->Trad_id)->where("Trad_lang", "EXTERNE")->first();
$tradExt->Trad_text = 123;
$tradExt->save();
+---------+-----------+-----------+-----------+
| Trad_id | Trad_lang | Trad_type | Trad_text |
+---------+-----------+-----------+-----------+
| 1206 | INTERNE | | 123 |
| 1206 | EXTERNE | | 123 |
| 1206 | FR | | 123 |
+---------+-----------+-----------+-----------+
'first()'方法只会返回一个项目,所以你确定它在每个更新语句中更新数据库中的多行?在更新之前尝试'dd()'查询的结果,以便您可以查看正在更新的内容。另外,您的表是否需要复合主键?也许这就是导致这个问题的原因? – haakym