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