使用Laravel验证验证布尔值

时间:2014-04-21 15:54:31

标签: validation laravel laravel-4

我有一个

的登录表单

usernamepasswordremember me

remember me是一个复选框(true或false)。

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

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

in:true,false

2 个答案:

答案 0 :(得分:6)

There's a validator for boolean.假设您正在使用其中一个简化模型验证的软件包,例如: EsensiModel,就像在Model中添加以下内容一样简单:

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

答案 1 :(得分:1)

您可以尝试这样的事情:

$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