你好很高興我想用一個自定義的驗證規則爲我的文本框:Laravel自定義密碼驗證
{{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');
}
}
模式沒有工作,但以下工作:'密碼'=>'正則表達式:/^[a-z] {4,} + $ /'但它不起作用。因爲當我輸入「asdf」時,它應該是一個有效的輸入。但我不斷收到消息:密碼格式無效。你能幫我嗎? – superkytoz 2014-11-25 09:12:25
您是否刪除了所有其他自定義驗證? – 2014-11-25 16:02:21
是的,因爲我只有這個:鏈接:http://pastebin.com/WJe2YWSS – superkytoz 2014-11-25 22:14:59