Laravel - Контроллер не устанавливает некоторые переменные при возврате через Redirect :: to - PullRequest
0 голосов
/ 05 мая 2019

В моем контроллере я проверяю поля ввода и, если какая-либо проверка не проходит, я хочу вернуться к форме и заполнить предыдущие значения, которые вводил пользователь (если вместо этого есть какой-либо другой более простой способ, пожалуйста, сообщите мне).Но вот что я делаю:

Controller.php:

public function store(Request $request, AnexoController $anexoController)
{
    $validator = Validator::make(
        $request->all(), 
        $rules, 
        $messages
    );

    if($validator->fails())
    {
        return Redirect::to($request->headers->get('referer'))
         ->withErrors($validator)
         ->withReq($request->all());
    }

    // continues the function...
}

На view.blade.php:

<input type="text" 
    maxlength="256" 
    id="text-input" 
    name="id" 
    placeholder="Código" 
    class="form-control" 
    @if(isset($req)) value="{{$req->id}}"
    @else value="$REQ VARIABLE NOT SET"
    @endif
    required>

И когда я проверяю этозначение поля id установлено в "$ REQ VARIABLE NOT SET", но установлена ​​переменная $errors из $validator.Итак, почему переменная $req не устанавливается в этом контексте?Заранее спасибо.

1 Ответ

1 голос
/ 05 мая 2019

Используйте это

$request->validate([
  //rules
]);

Он автоматически вернется на страницу формы со всеми ошибками и входными данными,

В вашей форме вы обязательно добавите вспомогательный параметр в значения входов длястарые входы

<input type="text" value={{ old('email')}} name="email">

см. https://laravel.com/docs/5.8/validation & https://laravel.com/docs/5.8/helpers

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...