【问题标题】:Error while updating a record in laravel 8在 laravel 8 中更新记录时出错
【发布时间】:2026-01-30 05:20:04
【问题描述】:

我在使用 Laravel (v8) 更新 1 条记录时遇到问题。下面是我的代码。

在控制器中

 public function update(Request $request, Category $category)
    {
        $input = $request->all();

        $validator = Validator::make($input, [
            'name' => 'required|unique:categories',
        ], [
            'name.required' => 'Name is required'
        ]);

        if ($validator->fails()) {
            return $this->sendError($validator->errors());
        }

        $category->name = $input['name'];
        $category->description = $input['description'];
        $category->status = $input['status'];
        $category->save();

        return $this->sendResponse(new CategoryResource($category), 'Success.');
    }

在资源中

class CategoryResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'name' => $this->name,
            'description' => $this->description,
            'status' => $this->status,
        ];
    }
}

在模型中

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    use HasFactory;
    protected $fillable = [
        'id',
        'name',
        'description',
        'status'
    ];
    protected $primaryKey = 'id';
    public $incrementing = false;
}

当我得到列表时 enter image description here

但是当我更新时: enter image description here

希望能得到您的帮助。非常感谢

【问题讨论】:

  • 您好,您可以删除屏幕截图并使用纯文本格式来增加问题的可读性

标签: laravel laravel-8


【解决方案1】:

HTTP PUT/PATCH 请求不支持 multipart/form-data 作为请求正文,您需要使用 application/x-www-form-urlencoded 作为请求正文。

【讨论】:

  • 或者使用 POST 方法并在发送的数据中添加_method=PUT 以登陆“放置声明的路线”
  • 您好,Zahid Hassan Alvi,N69S:感谢您的帮助。