作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
当我运行更新 Controller 时,它给了我这个错误,我尝试了来自同一个平台的不同解决方案,但他们的解决方法是使用单独的 save($product) 语法进行更新。我正在使用模型商店进行身份验证和保存数据或编辑删除。
"Type error: Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, array given, called in C:\xampp\htdocs\shopping\app\Http\Controllers\ProductController.php on line 138 ◀"
更新方法
public function update(Request $request, Product $Product){
$store = Store::where('user_id', Auth::user()->id)->first();
$updateProduct = $store->product()->save([
'name'=> $request->input('name'),
'description' => $request->input('description'),
'normal_price' => $request->input('normal_price'),
'sale_price' => $request->input('sale_price'),
'category_id' => $request->input('category_id'),
]);
return redirect('product')->with('status', 'Product Updated');
}
查看编辑表单
<form method="post" action="{{route('product.update', $product->id)}}">
{{ csrf_field() }}
{{ method_field('PUT') }}
最佳答案
当您使用 save()
时 Laravel expects model .
使用create()
方法。改变这个:
$updateProduct = $store->product()->save([
收件人:
$updateProduct = $store->product()->create([
或者这样做:
$updateProduct = $store->product()->save(new Product([
'name'=> $request->input('name'),
'description' => $request->input('description'),
'normal_price' => $request->input('normal_price'),
'sale_price' => $request->input('sale_price'),
'category_id' => $request->input('category_id'),
]));
关于php - Laravel“类型错误 : While Updating Records with PUT/PATCH Methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48075053/
我是一名优秀的程序员,十分优秀!