Директива required
Директива required в Laravel Blade предназначена для условной установки HTML-атрибута required для элементов форм. Она автоматически добавляет атрибут, если переданное условие возвращает true. Если условие ложное, атрибут не добавляется. Это удобно для динамического управления обязательностью полей ввода в зависимости от различных условий.
Синтаксис
@required($condition)
Пример
Используем директиву для обязательного поля ввода, когда установлен флаг:
<form method="POST" action="/submit">
@csrf
<input type="text" name="name" placeholder="Name" @required($isRequired)>
<button type="submit">Submit</button>
</form>
Результат выполнения кода при $isRequired = true:
<form method="POST" action="/submit">
<input type="hidden" name="_token" value="...">
<input type="text" name="name" placeholder="Name" required>
<button type="submit">Submit</button>
</form>
Пример
Директива может использоваться с полем select и любыми другими элементами форм:
<form method="POST" action="/profile">
@csrf
<div>
<label for="country">Country</label>
<select name="country" id="country" @required($needCountry)>
<option value="">Select country</option>
<option value="us">USA</option>
<option value="uk">UK</option>
<option value="ca">Canada</option>
</select>
</div>
<div>
<input type="checkbox" name="agree" id="agree" @required($agreeRequired)>
<label for="agree">I agree to terms</label>
</div>
<button type="submit">Save</button>
</form>
Результат выполнения кода при $needCountry = true и $agreeRequired = false:
<form method="POST" action="/profile">
<input type="hidden" name="_token" value="...">
<div>
<label for="country">Country</label>
<select name="country" id="country" required>
<option value="">Select country</option>
<option value="us">USA</option>
<option value="uk">UK</option>
<option value="ca">Canada</option>
</select>
</div>
<div>
<input type="checkbox" name="agree" id="agree">
<label for="agree">I agree to terms</label>
</div>
<button type="submit">Save</button>
</form>
Пример
Директива required может принимать любые логические выражения:
<form method="POST" action="/order">
@csrf
<input type="text" name="address" placeholder="Address" @required($user->hasAddress() === false)>
<input type="text" name="phone" placeholder="Phone" @required($orderType === 'delivery')>
<button type="submit">Place order</button>
</form>
Результат выполнения кода при $user->hasAddress() === true и $orderType === 'delivery':
<form method="POST" action="/order">
<input type="hidden" name="_token" value="...">
<input type="text" name="address" placeholder="Address">
<input type="text" name="phone" placeholder="Phone" required>
<button type="submit">Place order</button>
</form>