Laravel - предварительно заполнить входные данные после неудачной проверки - PullRequest
0 голосов
/ 09 октября 2018

Я использовал 5.4, и у меня есть действие index в контроллере конвертации, которое показывает форму, а затем выполняет другое действие, вычисляемое в контроллере конвертирования.Таким образом, форма содержит ввод из валюты, суммы, валюты, и все они обязательны.

Вот проверка, которую я рекомендую для действия по вычислению:

    $this->validate(request(), [
        'from_currency' => 'required|min:3|max:3|alpha',
        'to_currency' => 'required|min:3|max:3|alpha',
        'amount' => 'required|numeric',
    ]);

Если проверка не удаласьЯ хочу, чтобы при отображении ошибок и в форме он уже заполнял ввод.

Есть ли функция, которую я могу использовать для запроса?Я знаю, как получить домен / путь внутри блейда, как Request :: root (), и я также пробовал Request :: input ('from_currency) в представлении, но не работает.

Я даже пытался установить представлениеданные типа 'from_currency' => request ('from_currency') и пустые.Есть идеи?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Когда вы проверяете свою форму, ваш запрос, если он не выполнен, вы можете перенаправить на ту же страницу со всеми входными данными, которые были отправлены

    $validator = Validator::make($request->all(), [
        'from_currency' => 'required|min:3|max:3|alpha',
        'to_currency' => 'required|min:3|max:3|alpha',
        'amount' => 'required|numeric',
    ]);

    if ($validator->fails()) {
        return redirect('index')
                    ->withErrors($validator)
                    ->withInput();
    }

, и в виде блэйда вы можете показать старое значение, используяold помощник, как это

<input type="text" name="from_currency" value="{{ old('from_currency') }}">
<input type="text" name="to_currency" value="{{ old('to_currency') }}">
<input type="text" name="amount" value="{{ old('amount') }}">
0 голосов
/ 09 октября 2018

Попробуйте это

В своем блейд-файле убедитесь, что ваши входы имеют следующее:

<input type="text" ... value="{{ old('from_currency') }}" ... >.

Затем в вашем контроллере ...

if($validation->fails()) {
    return redirect()->back()->withInput();
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...