Laravel старый ввод 8.x

#php #laravel #laravel-8

#php #laravel #laravel-8

Вопрос:

Из приведенного ниже фрагмента документации Laravel 8.x следует, что использование old() для старого входного значения необязательно, но я не могу понять, как его не использовать.

Laravel позволяет сохранять ввод из одного запроса во время следующего запроса. Эта функция особенно полезна для повторного заполнения форм после обнаружения ошибок проверки. Однако, если вы используете встроенные функции проверки Laravel, маловероятно, что вам потребуется вручную использовать эти методы, поскольку некоторые встроенные средства проверки Laravel вызовут их автоматически.

https://laravel.com/docs/8.x/requests#old-input

Я знаю, что могу сделать <input name="field" value="{{ old('field') }}" /> , но мне неясно, является ли это лучшим / принятым способом включения исходного опубликованного значения во время ошибок проверки формы.

Я также пробовал это для другого сообщения SO:

     $validationRules = [
        'field' => 'required|max:255',
    ];

    $validator = Validator::make($request->all(), $validationRules);

    if ($validator->fails()) {
        return redirect(route('item.create'))->withInput()->withErrors($validator);
    }
  

Кто-нибудь может пролить свет на это?

Комментарии:

1. В документах указано использовать old() помощник, если вы используете шаблон блейда

2. не совсем уверен, в чем на самом деле заключается ваш вопрос

3. @AndyHolmes Это та часть, которая заставила меня подумать, что есть другой способ. «Однако, если вы используете встроенные функции проверки Laravel, маловероятно, что вам потребуется вручную использовать эти методы , поскольку некоторые встроенные средства проверки Laravel вызовут их автоматически».

4. @JSP вероятно, это больше относится к тем, кто использует проверку в настройках SPA, получая ответы обратно в виде JSON

5. @Taguro я закончил использовать old() . Копия показалась мне ненужной, но я не мог придумать другого способа. Не уверен, что это полезно…

Ответ №1:

 $validationRules = [
    'field' => 'required|max:255',
];

$validator = Validator::make($request->all(), $validationRules);

if ($validator->fails()) {
    //Add the $request->flash() to include the errors
    $request->flash(); 
    return redirect(route('item.create'))->withErrors($validator);
}