Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 21.04.2019 21:53:33

Валидация формы Laravel 5

Столкнулся с проблемой, на которую не нашёл ответа в интернете, поэтому прошу помощи тут. Использовал laravel 5.3, решил перейти на 5.8 путём создания нового приложения и копирования из "старого в новое". Так вот, есть поля в форме, которые можно не заполнять, но если оно заполнено, то идёт валидация. Теперь при отправке формы, незаполненные поля визжат ошибками. Код:

$validator = Validator::make($request->all(), [
            'qiwiWallet' => 'phone',
            'yandexWallet' => 'digits:14',
            'webmoneyWallet' => 'webmoney',
            'name' => 'alpha_dash|min:5|max:255'
        ], $messages); 

        $existsUser = User::where('name', $request->name)->where('id', '!=', $request->user()->id)->exists();
        if ($existsUser) 
        {
            $validator->errors()->add('name', 'Имя пользователя уже существует');    
            return redirect()->back()->withInput()->withErrors($validator);
        }

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

Как видите, required не стоит. В чем проблема?

Не в сети

#2 22.04.2019 07:56:14

Re: Валидация формы Laravel 5

Сделай так. В контроллере

$this->validate($request, [
            'qiwiWallet' => 'phone',
            'yandexWallet' => 'digits:14',
            'webmoneyWallet' => 'webmoney',
            'name' => 'alpha_dash|min:5|max:255',
            ]);

Во вьюхе, под input'ом

@if ($errors->has('название поля'))
    <span class="help-block">
        <strong>{{ $errors->first('название поля') }}</strong>
    </span>
@endif

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

Не в сети

#3 23.04.2019 11:54:28

Re: Валидация формы Laravel 5

К сожалению, не сработало. Во вьюхах у меня уже реализован вывод ошибок. Только выводить он не должен, т.к. поле не заполнено и на нём не стоит аттрибут required. На старой версии всё отлично работало.. странно
Z4wYPftSTT4.jpg

Не в сети

#4 26.04.2019 01:22:22

Re: Валидация формы Laravel 5

Проблема решена добавлением поля "nullable"

Изменено pahanjkee (26.04.2019 01:31:13)

Не в сети

Подвал раздела