Вы заменяете тип вашего $request
на результат из validate()
Проверка будет обрабатывать то, что вы хотите, поэтому не стоит беспокоиться.Если вы говорите, что переменная name
обязательна, она принудительно не будет null
или empty
;
Итак, просто замените результат на определенную переменную вместо замены $request
, выполнив:
$validationResult = $request->validate([
'name' => ['string', 'required', 'max:255'],
'email' => ['string', 'required', 'email', 'max:255', 'unique:users'],
]);
Лучше, чем этот, создать конкретный тип запроса, запустив
php artisan make:request YourRequest`
Ваш новый класс будет готов на app/Http/Requests
, где вы можете указать не только свой rules()
, как у вас в массиве, как messages()
, который вы хотите, чтобы каждый выводил.
Затем все, что вам нужно сделать, это заменить ваш save(Request $request)
на save(YourRequest $request)
, который сработает перед проверкой.он запускает метод, что означает, что в методе контроллера вы можете свободно выполнять логику вместо того, чтобы дважды проверять переменные
Примерами общих rules()
в вашем классе будут:
public function rules()
{
return [
'email' => 'required|email|unique:users|max:255',
'name' => 'required|min:2|max:200',
];
}
public function messages()
{
return [
'email.required' => 'The email field is required',
'email.email' => 'The email field needs to be an email type. Ex:. type@gmail.com',
....
];
}
Очевидно, настроить правила и сообщения для вашего проекта и симпатии:)