Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Столкнулся с проблемой, на которую не нашёл ответа в интернете, поэтому прошу помощи тут. Использовал 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 не стоит. В чем проблема?
Не в сети
Сделай так. В контроллере
$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
Чтобы сообщения об ошибке были на русском, нужно будет подправить языковый файл
Не в сети
К сожалению, не сработало. Во вьюхах у меня уже реализован вывод ошибок. Только выводить он не должен, т.к. поле не заполнено и на нём не стоит аттрибут required. На старой версии всё отлично работало.. странно
Не в сети
Проблема решена добавлением поля "nullable"
Изменено pahanjkee (26.04.2019 01:31:13)
Не в сети
Страницы 1