首页 > 解决方案 > Laravel 自定义请求验证总是给出验证错误

问题描述

我正在尝试使用自定义请求验证来发出放置请求。这是我的代码:

api.php

Route::put('/update-pdf-resource/{resource}', 'ManagementController@updatePdfResource');

管理控制器.php

public function updatePdfResource(Resources $resource, UpdatePdfResourceRequest $request)
{

   $resource->type = $request->type;
   $resource->title = $request->title;
   $resource->file = $request->file('file')->store('files', 'public')l
   $resource->save();
   return response(['message' => 'Resource updated successfully'], 201);
}

更新PdfResourceRequest.php

public function rules()
{
   return [
      'type' => 'required',
      'title' => 'required',
      'file' => 'required | mimes:pdf'
   ];
 }

现在,每当我尝试更新条目时,它都会向我发送以下错误 在此处输入图像描述

请求标头是

在此处输入图像描述

它使用正确的数据到达正确的路线,但会引发验证错误。如何解决?

更正:

我刚刚返回了updatePdfResource方法的 $request 开头,它返回了一个空数组!但在标题中,它显示了上面的正确有效负载!

标签: laravellaravel-7

解决方案


请求应该永远放在第一位

更改

public function updatePdfResource(Resources $resource, UpdatePdfResourceRequest $request)

对此

public function updatePdfResource(UpdatePdfResourceRequest $request, Resources $resource)

并且您的代码“l”而不是“;”中有语法错误

->store('files', 'public')l

推荐阅读