Директива checked
Директива checked в Blade позволяет условно добавить атрибут checked
к элементу input с типами checkbox или radio.
Она принимает одно выражение и, если оно истинно, добавляет атрибут
checked к элементу. Это особенно удобно при работе с формами,
где нужно сохранять состояние элементов после отправки данных.
Синтаксис
<input type="checkbox" @checked($condition)>
Где $condition - выражение, которое проверяется на истинность.
Если выражение истинно, атрибут checked будет добавлен к элементу.
Пример
Давайте создадим форму с чекбоксом, который будет отмечен, если пользователь согласен с условиями:
<form method="POST" action="/save">
@csrf
<input type="checkbox" name="terms" @checked(old('terms', false))>
<label>I agree to the terms</label>
<button type="submit">Submit</button>
</form>
Пример
Используем директиву checked для отображения ранее выбранных
значений в списке радио-кнопок:
@php
$userGender = 'female';
$genders = ['male', 'female', 'other'];
@endphp
@foreach ($genders as $gender)
<input type="radio" name="gender" value="{{ $gender }}" @checked($gender === $userGender)>
<label>{{ $gender }}</label>
@endforeach
Результат выполнения кода:
<input type="radio" name="gender" value="male">
<label>male</label>
<input type="radio" name="gender" value="female" checked>
<label>female</label>
<input type="radio" name="gender" value="other">
<label>other</label>
Пример
Покажем, как использовать директиву checked с массивом
выбранных значений для множественных чекбоксов:
@php
$userPermissions = ['read', 'write'];
$allPermissions = ['read', 'write', 'delete', 'admin'];
@endphp
@foreach ($allPermissions as $permission)
<input type="checkbox" name="permissions[]" value="{{ $permission }}" @checked(in_array($permission, $userPermissions))>
<label>{{ $permission }}</label>
@endforeach
Результат выполнения кода:
<input type="checkbox" name="permissions[]" value="read" checked>
<label>read</label>
<input type="checkbox" name="permissions[]" value="write" checked>
<label>write</label>
<input type="checkbox" name="permissions[]" value="delete">
<label>delete</label>
<input type="checkbox" name="permissions[]" value="admin">
<label>admin</label>
Пример
Используем директиву checked с условием из контроллера
для отображения настроек пользователя:
<?php
namespace AppHttpControllers;
use AppModelsUser;
class SettingsController extends Controller
{
public function edit($id)
{
$user = User::find($id);
return view('settings', [
'notificationsEnabled' => $user->notifications,
'emailSubscribed' => $user->email_subscription
]);
}
}
?>
<form method="POST" action="/settings/update">
@csrf
<input type="checkbox" name="notifications" @checked($notificationsEnabled)>
<label>Enable notifications</label>
<input type="checkbox" name="email_subscription" @checked($emailSubscribed)>
<label>Subscribe to emails</label>
<button type="submit">Save settings</button>
</form>
Смотрите также
-
директива
selected,
которая условно устанавливает атрибут selected для элементов select -
директива
disabled,
которая условно устанавливает атрибут disabled для элементов форм -
директива
required,
которая условно устанавливает атрибут required для полей ввода -
директива
if,
которая выполняет условное отображение блоков в Blade