首页 > 解决方案 > PUT 请求失败的 Laravel FormRequest

问题描述

我正在使用 Laravel 5.8 构建一个 RESTful API 我正在使用 FormRequests 来验证用户对我的 POST 和 PUT 请求的输入。POST 工作绝对完美,但 PUT 请求失败并出现以下错误,

“消息”:“函数 App\Http\Requests\ProjectStoreRequest::Illuminate\Foundation\Providers\{closure}() 的参数太少,通过了 0,预期正好 1”

我的 PUT 请求被路由的方法如下所示(URL 是 /api/projects/{id}),

public function update(ProjectStoreRequest $request, $id)
{
     $validated = $request->validate();
     $project  = Project::find($id);

     $project->title = $request->title;
     $project->due_date = Carbon::parse(strtotime($request->due_date))->format('Y-m-d');

     $project->save();

     return response()->json(['message' => 'Project updated', 'data' => $project], 200);
}

ProjectStoreRequest 看起来像这样,

    class ProjectStoreRequest extends FormRequest
    {
       /**
       * Determine if the user is authorized to make this request.
       *
       * @return bool
       */
       public function authorize()
       {
           return true;
       }

       /**
       * Get the validation rules that apply to the request.
       *
       * @return array
       */
       public function rules()
       {
           return [
               'title' => 'required|string',
               'due_date' => 'date'
           ];
       }
   }

标签: phplaravel

解决方案


推荐阅读