拉拉维尔自定义密码验证


Laravel custom password validation

嗨,很高兴我想为我的文本字段使用自定义验证规则:

{{Form::label('password', 'Wachtwoord: ', array('class' => 'col-xs-4'))}}
<div class="col-xs-2">{{ Form::password('password',  array('class' => 'form-control', 'placeholder'=>'Password')) }}</div>

我已经按照以下链接上的说明进行操作:http://laravel.com/docs/4.2/validation#custom-validation-rules

但是当我想使用我的自定义验证时,我卡住了。我认为我在代码中做错了什么。

很高兴我想对我的密码文本字段使用 validatePassword() 方法(在 validation.php 中)。

这是我的用户控制器.php:

public function update($id)
{
    $user_old_data = User::find($id);
    $input_password = Input::get('password');
    Validator::resolver(function($translator, $data, $rules, $messages)
    {
        return new validation($translator, $data, $rules, $messages);
    });

    /*Validator::extend('validatePassword', function($input_passwords,$input_passwords){
    });*/
    /*$validator = Validator::make($data = $thisUser, User::$rules);
    if ($validator->passes()) {
        if($user_old_data['email'] != $new_email){
            $email_exists = User::FindEmailOrFail2(Input::get('email') );    
            if($email_exists)
                return Redirect::back()->withErrors($validator)->withInput();
        } 

        //maak message variabel aan in je user index view.
        return Redirect::to('user/users')->with('message', 'Update with new password succesfull');
    } */
    return Redirect::back()->withErrors($validator)->withInput();
}

这是我的验证.php:

<?php
// app/validators/validation.php
 class validation extends Illuminate'Validation'Validator
 {
      public function validateFoo($attribute, $value, $parameters){
        //return $value == 'foo';
         echo "this is the: " . $value;
      }
      //{4,} will match strings of length 4 or more.
      protected function validatePassword( $attribute, $value ) {
            return (bool) preg_match('/^[a-z]{4,}+$/', $value);
            die('test');
        }

 }

如果您的代码反映了项目的范围,则可能根本不需要自定义验证器。您可以将pattern:/^[a-z]{4,}$/用作用户模型中的$rules之一。

您可以在 Laravel 的文档中查看示例:http://laravel.com/docs/4.2/validation#basic-usage

您使用的模式 : /^[a-z]{4,}+$/ 可以解释为"以至少 4 个字符开头的字符串,匹配小写的 a 到 z 和字符串末尾的加号"。删除加号(正则表达式从字面上解释,因为它前面的量词)应该使它正常工作。

请记住在进行更改后artisan optimize以确保重新编译已编译.php。