Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Laravel/Elount single object save()会更新多条记录_Laravel_Laravel Eloquent - Fatal编程技术网

为什么Laravel/Elount single object save()会更新多条记录

为什么Laravel/Elount single object save()会更新多条记录,laravel,laravel-eloquent,Laravel,Laravel Eloquent,我正在使用数据库表获取特定记录 $myTableObj = MyTable::where(['type' => $sometype])->first(); 成功获取,更新某些字段并使用保存 $myTableObj->save(); 令人惊讶的是,此记录与另一个也具有“type”=$sometype的记录一起更新。可以采取什么措施来防止这种情况? 注意:最初该表没有“自动增量id”字段,但我在论坛上看到它可能会在Laravel中出现问题,所以我添加了它,但没有解决问题。我知道

我正在使用数据库表获取特定记录

$myTableObj = MyTable::where(['type' => $sometype])->first();
成功获取,更新某些字段并使用保存

$myTableObj->save();
令人惊讶的是,此记录与另一个也具有“type”=$sometype的记录一起更新。可以采取什么措施来防止这种情况? 注意:最初该表没有“自动增量id”字段,但我在论坛上看到它可能会在Laravel中出现问题,所以我添加了它,但没有解决问题。

我知道更新就是更新,但是,我的答案很好,也适合更新。当您不想再次为更新定义列时,它很有用,当它们不可填充时,它将使用主键作为条件进行测试

$myTableObj->save;基本上,它用于保存新记录,如果要更新该行,可以按以下代码进行更新:

$myTableObj=new MyTable;
$myTableObj->exists=true;
$myTableObj->type=$sometype;//this is your condition, identify 
$myTableObj->update();
我认为这里发生的事情是,Laravel正在保存和更新行。

方法保存只使用“id”字段

你可以试试这个

$myTableObj = MyTable::where(['type' => $sometype])->update(['something' => 'value']);

我们可以看更多的代码吗?如何测试?这是内部测试吗?您的表模式似乎有问题,能否显示模型类?这与OP的要求相反。他只希望检索到的记录被更新更新同样有效,我已经在我自己的项目中使用了它。在检索到的模型上调用save方法来更新模型。