具有2个参数的PHP laravel save()函数不更新记录

时间:2019-10-31 02:41:39

标签: php laravel

$storeUpdate = $this->myModel->save($data, $idData);

嘿,我有上面的代码,当我尝试使用保存功能更新数据时,我的记录没有更新 请帮助我

5 个答案:

答案 0 :(得分:2)

首先,找到要更新的模型,然后更新模型。 (简单)

$model = $this->myModel->find($idData);
$model->update($data);

或 如果数据或ID还不存在,则可以使用firstOrCreate

$model = $this->myModel->firstOrCreate($data);

希望它可以帮助:)

答案 1 :(得分:0)

save上的Illuminate\Database\Eloquent\Model方法采用一系列选项,如果您要传递任何内容,则不是要在模型上设置的属性,也不是要查找的id。它将保存当前模型实例,无论是插入还是更新。

您可以通过主键找到模型,然后在该实例上调用update

$model = $this->myModel->findOrFail($id);
$ret = $model->update($data);

答案 2 :(得分:0)

在此处https://laravel.com/docs/5.8/eloquent#updates

阅读文档
set filename_reverse_mapper "mod1.v"

# Read in the data; this is good even for pretty large files
set f_3 [open $filename_reverse_mapper]
set lines_3 [split [read $f_3] "\n"]
close $f_3

set match [lsearch -all -inline $lines_3 "input wire *"]

答案 3 :(得分:0)

要更新模型,应检索它并设置要更新的属性,然后按如下所示调用save方法

$model= App\ModelName::find($id);

$model->attributeName= 'AttributeValue';

$model->save();

根据您的情况,您可以按以下方式进行批量更新

$model= App\ModelName::find($id);
$model->update($data);

有关更多信息,请参见laravel documentation

答案 4 :(得分:0)

return tap(ModelName::findOrFail($id))->update($data);

* $data: make sure your data is up to date from your view.
* tap method on collections which allow you to “tap” into the collection at a specific point and do something with the results while not affecting the main collection.

Any question feel free for asking me!