Метод IlluminateHttpRequest::validated не существует

#php #laravel #validation

#php #laravel #проверка

Вопрос:

я попытался использовать систему проверки, но выдал ошибку Method IlluminateHttpRequest::validated does not exist .

fileController.php

  public function store(Request $request)
        {
            $this->validate($request, [
                'titre' => ['bail','required_without:titre', 'string','min:3', 'max:255'],
                'name' => ['bail','required_without:name', 'string','min:3', 'max:255'],
                 ]);
          $file= new File($request->validated());
          $file->save();
            return Redirect::to("/")
            ->withSuccess('Great! file has been successfully uploaded.');
        }
  

Ответ №1:

validated Метод не включен IlluminateHttpRequest . Этот метод используется только для FormRequests (поскольку вы не тот, кто вызывает validate метод в FormRequest, это делается для вас, и должен быть способ получить эти данные).

validate Метод, который вы вызываете на своем контроллере, возвращает проверенные данные.

 $validated = $this->validate(...):
  

Ответ №2:

Это еще один способ из ответа @lagbox, в документах проверки Laravel вы увидите это.

 $validated = $request->validated();
 
$validated = $validator->validated();
  

Вы можете попробовать следующий подход.

 $validator = Validator::make($request->all(), [
    'title' => 'required|unique:posts|max:255',
    'body' => 'required',
]);

$validated = $validator->validated();
  

Ответ №3:

Вы можете проверить параметры $request таким образом:

 $request->validate([
    "param" => "required|string"
 ])