laravel - 调用数组上的成员函数 fill()
问题描述
我正在尝试更新产品表中的数据。但是,当我尝试更新 laravel 时,它给了我一个错误,说调用数组上的成员函数 fill()。当我调试 $data 时,我得到了一个键和值数组。
我有以下代码:
public function update(Request $request,Products $product)
{
$this->products = $this->products->find($product->id);
if(!$this->products){
request()->session()->flash('error','Product not found!');
return redirect()->route('product.index');
}
$rules = $this->products->getRules('update');
$this->products = $request->validate($rules);
$data = $request->all();
$data['added_by'] = $request->user()->id;
$data['image'] = explode(',',$data['related_images'])[0];
$this->products->fill($data); //Getting error here
$status = $this->products->save();
if($status){
$request->session()->flash('success','Product updated successfully.');
} else {
$request->session()->flash('error','Sorry! there was problem updating product.');
}
return redirect()->route('product.index');
}
我希望 fill() 函数能够工作,以便它可以更新我在产品表上的数据。
解决方案
下面的行products
用通过验证的键数组覆盖你。您可以通过删除分配来修复它(如果有错误,仍然会返回422错误)
$this->products = $request->validate($rules);
// change to
$request->validate($rules);
推荐阅读
- sql - 左连接更新语句
- java - 验证方法对象参数
- mysql - 如何从已发布的 wordpress 评论中删除特定的电子邮件?
- macos - AndroidStudio 3.2 在 Mojave 上启动缓慢
- css - 具有高级 CSS 选择器的表格中的动态列宽
- c - 从 linux 上的 UDPServer 向 Windows 上的 UDPClient 发送 msg 时出现问题
- elasticsearch - 带有 Elasticsearch 索引的 JanusGraph 不起作用
- java - 詹金斯有时运行一个参数,有时对所有参数运行多次
- r - 用于创建具有容量的多个资源的 While 循环
- java - 我正在尝试访问相机