Laravel валидатор. Невозможно получить как ошибки, так и ввод - PullRequest
0 голосов
/ 31 января 2020

Я использую Laravel для проекта, и я пытаюсь проверить некоторые поля ввода из формы. Я использую класс Validator.

Вот код в моем контроллере.

$validator =   Validator::make($request->all(), [
    'arithmos_kinhths' => 'required',
    'kathgoria_kinhths' => ['required',Rule::notIn(['-'])],
    'prohgoumenos_paroxos_kinhths' => ['required',Rule::notIn(['-'])],
    'programma_kinhths' => ['required',Rule::notIn(['-'])],
    'project_kinhths' => ['required',Rule::notIn(['-'])],
    'kathogoria_epidothshs_kinhths' =>['required',Rule::notIn(['-'])],
    'talk_to_eu_kinhths' => ['required',Rule::notIn(['-'])],
    'pagio_kinhths' => 'required',
    'sms_kinhths' => ['required',Rule::notIn(['-'])],
    'internet_kinhths' => ['required',Rule::notIn(['-'])],
   'international_kinhths' => ['required',Rule::notIn(['-'])],
    'twin_sim_kinhths' => ['required',Rule::notIn(['-'])],
    'wind_unlimited_kinhths' => ['required',Rule::notIn(['-'])],
]);


if ($validator->fails()) {
    return back()->withErrors($validator)->withInput();
}

В блейд-файле я пытаюсь перехватить ошибки, используя приведенный ниже код.

@if($errors->any())
    @foreach($errors->all() as $error)
    <script>
        $.notify(
            {
                title: '<strong>ERROR!</strong>',
                message: '{{$error}}',
            },
            {
                type: 'danger',
            },
        )
    </script>
    @endforeach
@endif

Также я хочу поместить старые значения в поля ввода, используя {{old('value'}}

Проблема, с которой я столкнулся, заключается в том, что я не могу объединить ошибки и вводимые данные. Если я возвращаю только ошибки, используя withErrors($validator), ошибки распечатываются. И если я вернусь только с Input, у меня есть значения сообщения.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 31 января 2020

вы можете использовать $ this-> validatorWith ([]), а затем следовать своему коду, вам не нужно вручную перенаправлять обратно на эту страницу. Ваш запрос будет автоматически перенаправлен на ту страницу, с которой произошел запрос. эта функция относится к признаку Illuminate / Foundation / Validation / ValidatesRequests, который используется приложением \ Http \ Controllers \ Controller. php. вам просто нужно использовать. подробнее об этой особенности см. здесь ValidateRequest


$this->validatorWith([
    'request_param' => 'required',
]);
0 голосов
/ 31 января 2020
withInputs()

попробуйте, надеюсь, это немного поможет, или вы можете

return back()->with('errors',$validator)->withInputs()
...