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

我有一个带有

的登录表单

usernamepasswordremember me

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

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

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

in:true,false

【问题讨论】:

    标签: validation laravel laravel-4


    【解决方案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
      

      【讨论】:

      • 谢谢,显然这看起来很可靠,但无论如何实际使用验证类? (在我的系统中,我会在进入控制器之前进行验证,因此重新架构会涉及更多)
      • 真的没看懂,进控制器前怎么验证?无论如何,感谢您的赞许 :-) 也许您可能想分享更多关于您的系统的信息,以便我们讨论它,我很好奇 :-)
      猜你喜欢
      • 2016-11-20
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 2018-08-27
      • 2013-07-05
      • 1970-01-01
      相关资源
      最近更新 更多