使用 Laravel 验证验证布尔值

Posted

技术标签:

【中文标题】使用 Laravel 验证验证布尔值【英文标题】:Validating boolean with Laravel Validation 【发布时间】:2014-06-05 17:18:07 【问题描述】:

我有一个带有

的登录表单

usernamepasswordremember me

remember me 是一个复选框(真或假)。

如何在 Laravel 中创建验证规则? http://laravel.com/docs/validation#basic-usage

似乎唯一相关的是in,您指定了值,但在这种情况下,值是布尔值,使用这种方法,它们将被指定为字符串?

in:true,false

【问题讨论】:

【参考方案1】:

There's a validator for boolean. 假设您使用的是简化模型验证的软件包之一,例如EsensiModel,只需将以下内容添加到您的Model

protected $rules = [
    'email'       => 'required|email',
    'password'    => 'required',
    'remember_me' => 'boolean',
];

【讨论】:

【参考方案2】:

你可以试试这样的:

$rules = array('email' => 'required|email', 'password' => 'required');
$inputs = array(
    'email' => Input::get('email'),
    'password' => Input::get('password')
);
$validator = Validator::make($inputs, $rules);

if($validator->fails()) 
    return Redirect::back()->withInput()->withErrorts($validator);

else 
    $remember = Input::get('remember', FALSE);
    if(Auth::attempt($inputs, !!$remember)) 
        // Log in successful
        return Redirect::to('/'); // redirect to home or wherever you want
    

我使用了推荐的email,但如果您使用username 而不是email,那么只需将email 更改为username 并在username 的规则中使用如下内容:

'username' => 'required|alpha|min:6' // Accepts only a-z and minimum 6 letters

【讨论】:

谢谢,显然这看起来很可靠,但无论如何实际使用验证类? (在我的系统中,我会在进入控制器之前进行验证,因此重新架构会涉及更多) 真的没看懂,进控制器前怎么验证?无论如何,感谢您的赞许 :-) 也许您可能想分享更多关于您的系统的信息,以便我们讨论它,我很好奇 :-)

以上是关于使用 Laravel 验证验证布尔值的主要内容,如果未能解决你的问题,请参考以下文章

php变量布尔值验证

php变量布尔值验证

在js 中怎样声明一个布尔值变量,使其经过多次验证,最后返回这个布尔

C# 布尔和布尔? jQuery 验证问题

使用休眠映射布尔值

使用 FormData Javascript 发送布尔值 - Vuejs + Laravel 应用程序