Правило boolean
Правило boolean используется в валидации Laravel для проверки того, что переданное значение является логическим (булевым). Это правило проверяет допустимые булевы значения: true, false, 1, 0, "1", "0". Особенно полезно для полей типа чекбоксов, переключателей и согласий пользователя.
Синтаксис
<?php
'field_name' => 'boolean'
?>
Пример
Проверим поле 'is_active' на соответствие булеву типу:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class UserController extends Controller
{
public function update(Request $request)
{
$validator = Validator::make($request->all(), [
'is_active' => 'boolean'
]);
if ($validator->fails()) {
return $validator->errors();
}
return "Validation passed";
}
}
?>
Пример
Проверим несколько полей с булевыми значениями:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class ArticleController extends Controller
{
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'is_published' => 'required|boolean',
'is_featured' => 'boolean',
'allow_comments' => 'boolean'
]);
if ($validator->fails()) {
return $validator->errors();
}
return "All boolean fields are valid";
}
}
?>
Пример
Использование правила boolean в классе FormRequest:
<?php
namespace AppHttpRequests;
use IlluminateFoundationHttpFormRequest;
class UpdateUserRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users',
'is_admin' => 'boolean',
'is_verified' => 'boolean'
];
}
}
?>
Пример
Допустимые значения, которые проходят проверку:
<?php
use IlluminateSupportFacadesValidator;
$data = [
'field1' => true,
'field2' => false,
'field3' => 1,
'field4' => 0,
'field5' => "1",
'field6' => "0"
];
$validator = Validator::make($data, [
'field1' => 'boolean',
'field2' => 'boolean',
'field3' => 'boolean',
'field4' => 'boolean',
'field5' => 'boolean',
'field6' => 'boolean'
]);
if ($validator->passes()) {
echo "All values are valid booleans";
}
?>
Результат выполнения кода:
"All values are valid booleans"
Пример
Недопустимые значения, которые не проходят проверку:
<?php
use IlluminateSupportFacadesValidator;
$data = [
'field1' => 'yes',
'field2' => 'no',
'field3' => 'on',
'field4' => 'off',
'field5' => 'true',
'field6' => 'false',
'field7' => 2,
'field8' => 'abc'
];
$validator = Validator::make($data, [
'field1' => 'boolean',
'field2' => 'boolean',
'field3' => 'boolean',
'field4' => 'boolean',
'field5' => 'boolean',
'field6' => 'boolean',
'field7' => 'boolean',
'field8' => 'boolean'
]);
if ($validator->fails()) {
$res = $validator->errors()->all();
var_dump($res);
}
?>
Результат выполнения кода:
[
"The field1 field must be true or false.",
"The field2 field must be true or false.",
"The field3 field must be true or false.",
"The field4 field must be true or false.",
"The field5 field must be true or false.",
"The field6 field must be true or false.",
"The field7 field must be true or false.",
"The field8 field must be true or false."
]