Bruno
Bruno

Reputation: 19

Error while updating a record in laravel 8

I'm having a problem updating 1 record with Laravel (v8). Below is my code.

in Controller

 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.');
    }

in Resource

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,
        ];
    }
}

in Models

<?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;
}

When I get the list enter image description here

But when I update: enter image description here

Hope to get your help. Thanks a lot

Upvotes: 1

Views: 79

Answers (1)

Zahid Hassan Alvi
Zahid Hassan Alvi

Reputation: 157

HTTP PUT/PATCH request doesn't support multipart/form-data as request body, you'll need to use application/x-www-form-urlencoded as request body.

Upvotes: 1

Related Questions