Самое простое решение для валидации использовать метод validate
, предоставляемый объектом Illuminate\Http\Request
. Если правила валидации будут пройдены, то код продолжит нормально выполняться; однако, если проверка не пройдена, то будет создано исключение Illuminate\Validation\ValidationException
и соответствующий ответ об ошибке будет автоматически отправлен обратно пользователю.
Если валидации не пройдена во время традиционного HTTP-запроса, то будет сгенерирован ответ-перенаправление на предыдущий URL-адрес. Если входящий запрос является XHR-запросом, то будет возвращен JSON-ответ, содержащий сообщения об ошибках валидации.
Чтобы лучше понять метод validate
, давайте вернемся к методу store
:
public function store(Request $request) { $validated = $request->validate([ 'title' => 'required|unique:posts|max:255', 'body' => 'required', ]); // Запись блога корректна ... }
Имеется возможность создавать собственные правила проверки, расширив класс Validator и зарегистрировав правило у поставщика услуг.
Помимо самих данных форм, объект request содержит дополнительные данные, например ip пользователя:
// в классах: $clientIP = \Request::ip(); dd($clientIP); // или в blade: request()->ip()
Практика