我有一个页面模型。它在数据库表中有以下列:
我只想更新"图片"列值。
这是我的代码:
public function delImage($path, $id) {
$page = Page::find($id);
$page->where('image', $path)->update(array('image' => 'asdasd'));
\File::delete($path);
}
它抛出了一个错误,我试图在非对象上使用where()。我怎样才能正确更新我的"图像"列值?
答案 0 :(得分:27)
你可以试试这个:
Page::where('id', $id)->update(array('image' => 'asdasd'));
还有其他方法,但在这种情况下无需使用Page::find($id);
。但是如果您使用find()
,那么您可以尝试这样:
$page = Page::find($id);
// Make sure you've got the Page model
if($page) {
$page->image = 'imagepath';
$page->save();
}
您也可以使用:
$page = Page::findOrFail($id);
因此,如果找不到具有该id的模型,它将抛出异常。
答案 1 :(得分:2)
我尝试用
更新一个字段$table->update(['field' => 'val']);
但是它没有用,我不得不修改我的表模型以授权编辑该字段:在“ protected $ fillable”数组中添加“ field”
希望它将对某人有所帮助:)
答案 2 :(得分:1)
版本1:
// Update data of question values with $data from formulay
$Q1 = Question::find($id);
$Q1->fill($data);
$Q1->push();
第2版:
$Q1 = Question::find($id);
$Q1->field = 'YOUR TEXT OR VALUE';
$Q1->save();
如果回答问题,您可以使用它们:
$page = Page::find($id);
$page2update = $page->where('image', $path);
$page2update->image = 'IMGVALUE';
$page2update->save();