laravel的自定义验证帮助 - 根据DB字段检查字段

时间:2014-10-12 22:12:24

标签: php validation laravel laravel-4

试图想办法让我检查输入密码与数据库的密码。

对于数据库值,我使用的是Auth功能。到目前为止,我有:

$currentPassword = Auth::user()->password;
$passwordInput = Input::get('password-old');

if (isset($passwordPassword) && !Hash::check($passwordInput, $currentPassword))
{
return Redirect::to('/updatepassword')->with('incorrectPassword', '1');
}

然后我检查使用重定向发送的incorrectPassword。这很有效,但很难看。我想创建一个自定义验证,我可以根据给定的值检查字段。

所以:

'password' = > 'checkMatch:$checkValue'

还是什么?

对此有何帮助?我已经研究了如何实现自定义验证规则,但是如果没有一个有效的例子,我就无法将它放到我的脑海中。

1 个答案:

答案 0 :(得分:2)

Validator::extend('checkMatch', function($attribute, $value, $parameters)
{
   if (count($parameters) < 1)
      throw new InvalidArgumentException("Validation rule checkMatch requires at least 1 parameters.");

   return Hash::check($value, $parameters[0]);
});