Метод boolean
Метод boolean применяется к объекту запроса
и возвращает логическое значение поля. Первым и
единственным параметром передаётся имя поля,
значение которого нужно преобразовать в булев тип.
Метод учитывает различные представления логических
значений: строки 'true', 'false',
'on', 'off', а также числа 0 и 1,
что делает его удобным для обработки данных из
HTML-форм и GET-параметров.
Синтаксис
<?php
$request->boolean($key);
?>
Пример
Получим значение параметра запроса 'active'
и преобразуем его в логический тип:
<?php
use Illuminate\Http\Request;
Route::get('/user', function (Request $request) {
$isActive = $request->boolean('active');
echo $isActive;
});
?>
Результат выполнения кода для URL:
"/user?active=true"
Результат выполнения кода:
"true"
Пример
Получим значение параметра 'is_admin'
и преобразуем его в логический тип:
<?php
use Illuminate\Http\Request;
Route::get('/admin', function (Request $request) {
$isAdmin = $request->boolean('is_admin');
echo $isAdmin;
});
?>
Результат выполнения кода для URL:
"/admin?is_admin=off"
Результат выполнения кода:
"false"
Пример
Метод boolean отлично подходит для обработки
отправленных данных из HTML-формы с чекбоксом:
<?php
use Illuminate\Http\Request;
Route::post('/settings', function (Request $request) {
$notifications = $request->boolean('notifications');
if ($notifications) {
echo "Notifications enabled";
} else {
echo "Notifications disabled";
}
});
?>
Результат выполнения кода при отправке формы:
"Notifications enabled"
Пример
Обработка нескольких булевых параметров с проверкой их существования:
<?php
use Illuminate\Http\Request;
Route::get('/filter', function (Request $request) {
$isActive = $request->boolean('active');
$isDeleted = $request->boolean('deleted');
$isDraft = $request->boolean('draft');
echo "Active: " . ($isActive ? 'yes' : 'no') . "\n";
echo "Deleted: " . ($isDeleted ? 'yes' : 'no') . "\n";
echo "Draft: " . ($isDraft ? 'yes' : 'no');
});
?>
Результат выполнения кода для URL:
"/filter?active=1&deleted=false&draft=on"
Результат выполнения кода:
"Active: yes\nDeleted: no\nDraft: yes"