Проверка формы и загрузка файла разделились, но использовались одним и тем же способом? - PullRequest
0 голосов
/ 27 марта 2019

Когда форма отправляется и проходит валидацию, которая определена в классе ValidateTicketData extends FormRequest, вы попадаете на сайт, где отображаются входные данные вашей формы.

Существует также <input type="file" /> для загрузки файла.
Правила проверки для этого определены в ValidateUploadedFile extends FormRequest -Классе.

Когда файл проходит проверку, там должно бытьбудет отображаться что-то вроде «файл был успешно загружен» или около того.

Вот метод Controller:

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 ... (так, чтобы контроллер выглядел следующим образом:)

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

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

... он работает просто отлично.
Сайт 'validation' отображается спроверенные входные данные формы.

Я почему-то думаю, что это как-то связано со вторым классом Request $requestFile, но я действительно не знаю, как это сделать.

Поскольку файл может бытьпроверяется только после того, как данные формы уже проверены. Мне нужны два отдельных класса запросов.

Я надеюсь, что кто-то может помочь мне с этим.

...