表单验证和文件上传验证是分开的,但使用的是同一方法?

时间:2019-03-27 11:59:37

标签: php laravel validation file-upload request

提交表单并通过ValidateTicketData extends FormRequest类中定义的验证后,您将到达一个显示表单输入的站点。

还有一个<input type="file" />用于上传文件。
此验证规则在ValidateUploadedFile extends FormRequest-Class中定义。

文件通过验证后,应该显示类似“文件已成功上传”之类的信息。

这是控制器方法:

public function store(ValidateFormData $request, ValidateUploadedFile $requestFile, $param = '')
{
  $validated = $request->validated();
  $formData = $request->all();

  if ($requestFile->hasFile('file')) {
     $file = $requestFile->file('file');
     if ($file->validated()) {
        $filename = uniqid() . $file->getClientOriginalName() . '.' . $file->getClientOriginalExtension();
        $file->storeAs('store', $filename);
        $file->move(public_path('store') . $filename);
     }
  }
  return view('/validation', compact('formData'));
}

我在想这样的事情。
如果我忽略了$ requestFile ...的一部分(以便Controller看起来像这样:)

public function store(ValidateFormData $request, $param = '')
{
  $validated = $request->validated();
  $formData = $request->all();

  return view('/validation', compact('formData'));
}

...效果很好。
显示带有已验证表单输入的“ validation”站点。

我以某种方式认为这与第二个Request类$requestFile有关,但是我真的不知道该怎么做。

由于只有在验证表单数据之后才能验证文件,因此我需要两个单独的Request类。

我希望有人可以帮助我。

0 个答案:

没有答案