РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
631 of 1392 menu

Правило bail

Правило bail применяется в валидации Laravel для того, чтобы остановить проверку поля после первой же неудачной проверки. Это особенно полезно, когда последующие правила могут привести к неожиданным ошибкам или когда вы хотите показывать только первое сообщение об ошибке для каждого поля.

Синтаксис

Правило bail указывается в массиве правил валидации перед остальными правилами для поля:

<?php $rules = [ 'email' => 'bail|required|email|unique:users', ]; ?>

Пример

Рассмотрим базовый пример использования правила bail в контроллере для валидации email-адреса:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function store(Request $request) { $validated = $request->validate([ 'email' => 'bail|required|email|unique:users', ]); echo "Validation passed"; } } ?>

Если поле email отсутствует в запросе, валидация остановится на правиле required и не будет проверять правила email и unique.

Пример

Сравним поведение валидации с правилом bail и без него для поля password:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class AuthController extends Controller { public function register(Request $request) { $validated = $request->validate([ 'password' => 'bail|required|min:8|confirmed', ]); $res = $validated; echo "Registration successful"; } } ?>

Результат выполнения кода при отсутствии поля password:

"The password field is required."

Без правила bail вы бы получили все ошибки сразу: и о том, что поле обязательно, и о минимальной длине, и о подтверждении пароля.

Пример

Рассмотрим более сложный пример с несколькими полями, где некоторые используют bail, а другие нет:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ProfileController extends Controller { public function update(Request $request) { $validated = $request->validate([ 'name' => 'bail|required|string|max:255', 'age' => 'required|integer|min:18|max:100', 'email' => 'bail|required|email', ]); $res = $validated; echo "Profile updated"; } } ?>

В этом примере поля name и email используют правило bail, поэтому для них будет показана только первая ошибка. Поле age без bail может вернуть несколько ошибок одновременно.

Смотрите также

  • правило required,
    которое проверяет наличие поля
  • правило email,
    которое проверяет корректность email-адреса
  • правило min,
    которое проверяет минимальное значение
  • метод stopOnFirstFailure,
    который останавливает всю валидацию при первой ошибке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить