php - Laravel“类型错误 : While Updating Records with PUT/PATCH Methods

标签 php laravel

当我运行更新 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/

相关文章:

php - Laravel 文件系统 sftp 缓存适配器

php - 现在 Laravel 5.3 中 save() 返回 false

php - 更新MySQL表的特定记录

php - 将 "ON DELETE CASCADE"添加到 Laravel 中的现有列

php - 查找使用加密私钥curl连接第三方时出现间歇性 "Incorrect Password"错误的原因

php - 在 laravel 中测试查询执行时间

php - MySQL 只显示最后的数据

php - 在 Woocommerce 3 中通过 ajax 提交并创建结帐订单

php - 如何从 laravel 中的两个不同页面更新一个表

php - Laravel 的 CSRF token 和负载均衡