我的情况是更改密码选项。我已在对象$pass
中拥有当前密码。我想针对文本框输入current_password验证此$pass
以继续为用户创建新密码。如何使用相同的验证器进行验证。对不起,我是laravel的新手。
$rules = array('password_current' => "required|same:$pass");
不起作用。
答案 0 :(得分:6)
因为same:
用于确保当前字段的值与规则参数(非对象)定义的另一个字段相同。所以你不能使用这个函数来看看下面这个例子的代码。
$data = Input::all();
$rules = array(
'email' => 'required|same:old_email',
);
上面的代码将检查当前的电子邮件字段是否与old_email字段相同。 所以我认为你可以简单,如果没有其他
句柄控制器函数中的假设
public function handleCheck(){
$current_password = Input::get('current_password');
$pass = //your object pass;
if($current_password == $pass){
// password correct , show change password form
}else{
// password incorrect , show error
}
}
让我知道它是否有效。见Laravel Validation same
答案 1 :(得分:1)
如果您已经在$pass
中存储了密码,只需在请求中注入$ pass,然后将其字段用于例如
$request->request->add(['password_old' => $pass]);
然后,您可以像验证它
$rules = array('password_current' => "required|same:password_old");