使用 Laravel 验证验证布尔值
Posted
技术标签:
【中文标题】使用 Laravel 验证验证布尔值【英文标题】:Validating boolean with Laravel Validation 【发布时间】:2014-06-05 17:18:07 【问题描述】:我有一个带有
的登录表单username
、password
和 remember 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 验证验证布尔值的主要内容,如果未能解决你的问题,请参考以下文章