本文目录导读:

在 Laravel 中,布尔验证(boolean validation)默认不严格,但可以通过一些配置或自定义验证实现严格检查。
默认行为(不严格)
Laravel 的 boolean 验证规则接受的值为:
- 真实值:
true、"true"、"1"、1、"on"、"yes" - 虚假值:
false、"false"、"0"、0、"off"、"no"
// 这些都是有效的布尔值验证
$request->validate([
'active' => 'boolean',
]);
如何实现严格验证
自定义验证规则
use Illuminate\Support\Facades\Validator;
Validator::extend('strict_boolean', function ($attribute, $value, $parameters, $validator) {
return is_bool($value);
});
// 使用
$request->validate([
'active' => 'strict_boolean',
]);
使用正则表达式
$request->validate([
'active' => ['required', 'regex:/^(true|false)$/i'],
]);
创建自定义表单请求
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StrictBooleanRequest extends FormRequest
{
public function rules()
{
return [
'active' => ['required', function ($attribute, $value, $fail) {
if (!is_bool($value)) {
$fail($attribute.' 必须是严格的布尔值。');
}
}],
];
}
}
使用 Laravel 的 accepted 规则
// 只接受 true, "true", 1, "1", "yes", "on"
$request->validate([
'agreement' => 'accepted',
]);
实际场景建议
- 网页表单:默认不严格通常足够,因为表单提交的值通常是字符串
- API 接口:建议严格验证,确保数据类型正确
- 内部系统:根据具体需求选择
// 推荐的做法:结合转换和验证
$request->validate([
'active' => 'boolean',
]);
// 然后强制转换为布尔值
$data = $request->boolean('active'); // 返回 true 或 false
Laravel 的布尔验证默认不严格,但可以通过自定义规则轻松实现严格验证,根据你的业务场景选择合适的验证方式。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播