簡體   English   中英

Laravel自定義密碼驗證

[英]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中)。

這是我的UserController.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();
}

這是我的validation.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:/^[az]{4,}$/作為$rules之一。

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

您使用的模式: /^[az]{4,}+$/可以解釋為“一個至少以4個字符開頭的字符串,該字符串與小寫的a到z匹配,並在字符串的末尾加號。 刪除加號(正則表達式之所以會在字面上解釋正則表達式,是因為它前面有一個量詞)應該可以使此工作正常進行。

進行更改后,請記住要由artisan optimize ,以確保Compiled.php被重新編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM