我正在使用
获取包含数据库表的特定记录$myTableObj = MyTable::where(['type' => $sometype])->first();
成功完成,更新某些字段并使用
保存$myTableObj->save();
令人惊讶的是,此记录与另一条记录一起更新,该记录也包含'type'= $ sometype。可以做些什么来防止这种情况? 注意:最初该表没有自动增量id字段,但我在论坛中读到它可能会在Laravel中出现问题,所以我确实添加了它,但没有解决问题。
答案 0 :(得分:0)
仅使用“id”处理的方法save()
。
你可以试试这个
$myTableObj = MyTable::where(['type' => $sometype])->update(['something' => 'value']);
答案 1 :(得分:-1)
我理解update()
是要更新,但是,我的回答工作正常,也适合更新。它非常有用,你不希望再次为更新定义列,(sp当它们不可填充时,用主键作为条件进行测试)
$myTableObj->save();
基本上用于保存新记录,如果你想更新那行,你可以更新如下代码:
$myTableObj=new MyTable;
$myTableObj->exists=true;
$myTableObj->type=$sometype;//this is your condition, identify
$myTableObj->update();
我认为这里发生的事情是Laravel正在保存以及更新行。