你好很高兴我想用一个自定义的验证规则为我的文本框: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