Приятно, что вы используете laravel. Сначала я дам вам несколько советов по улучшению фрагмента кода.
Вы написали
это просто перенаправление регистрации со страницы при отправке формы
это правильно, потому что если вы отправите форму без изображения, проверка скажет «ложь».
Вы не можете проверить требуемое таким образом:
, если ($ request-> image! = '') {
, потому что это необходимо.
На самом деле ваш код вообще пропускает проверку, было бы лучше, если вы используете следующее:
$validator = Validator::make($request->all(), [
'name' => 'required|string|max:255',
'father_name' => 'required|string|max:225',
'address' => 'required|string|max:255',
'card_id' => 'required|string|max:255',
'image' => 'required|image|mimes:jpeg,png,jpg',
]);
if ($validator->fails()) {
Session::flash('error', $validator->messages()->first());
return redirect()->back()->withInput();
}
Если вы сбросите свой дд ($ validator); вы увидите все возможности для проверки $ запроса. Ваши ошибки вы найдете здесь: $ validator-> errors ().
Если что-то пошло не так, вы должны перенаправить обратно с помощью
-> withInput ()
, поэтому все данные останутся в форме. Также возможно с некоторыми пояснениями для пользователя -> withErrors ():
// message information for the user
$messages = $validator->errors();
$messages->add('Your explanation');
// redirect
return redirect()->route('index')->withErrors($messages)->withInput();
На самом деле я не уверен, почему вы сохраняете все $ request в $ input.
Вы можете проверить https://laravel.com/docs/5.8/validation#using -rule-objects , которые помогут найти отличное решение для использования strtoupper ().
Полезные ссылки:
https://laravel.com/docs/5.8/validation https://laravel.com/docs/5.8/session#flash -data