Laravel 5.7 - Как сбросить мигшее входное значение при использовании проверки формы запроса? - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть форма:

  {!! Form::model($profile, ['method' => 'PATCH', 'action' => ['ProfileController@update']]) !!}
       {!! Form::text('location_name', null, ['id' => 'location_name', 'class' => 'js-location-lookup']) !!}
       {!! Form::hidden('location_id', null, ['id' => 'location_id']) !!}
       {!! errors_for('location_id', $errors) !!}
       <button type="submit">Submit</button>
  {!! Form::close() !!}

Ввод location_name является функцией автозаполнения и предоставляет пользователю предложения при вводе и при выборе местоположения location_id заполняется с помощью jquery.

Однако, если пользователь случайно набирает мусор или неизвестное местоположение или вставляет значение местоположения, то location_id не устанавливается. В этом сценарии, когда они нажимают кнопку отправки, запускается приведенная ниже проверка, но когда форма повторно отображается с ошибками, поле location_name по-прежнему имеет старое введенное пользователем значение.

Если не указан location_id, как я могу сбросить значение location_name в пустую строку?

Для проверки я использую запрос формы, как показано ниже, и пытаюсь сбросить значение location_name в методе failvalidation, но он не работает:

class ProfileRequest extends FormRequest {


    public function authorize()
    {
       return true;
    }


    public function rules()
    {
       return = [   
           'location_id' => 'required'
       ];
    }


    protected function failedValidation(Validator $validator)
    {

        if ($validator->errors()->has('location_id')) {
            $this->location_name = ''; // this doesn't work?
        }

       throw (new ValidationException($validator))
        ->errorBag($this->errorBag)
        ->redirectTo($this->getRedirectUrl());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...