【发布时间】:2020-02-29 18:12:40
【问题描述】:
我的情况是更改密码选项。我已经在对象$pass 中有当前密码。我想针对文本框表单输入 current_password 验证此 $pass 以继续为用户创建新密码。如何使用相同的验证器进行验证。抱歉,我是 laravel 新手。
$rules = array('password_current' => "required|same:$pass");
没用。
【问题讨论】:
我的情况是更改密码选项。我已经在对象$pass 中有当前密码。我想针对文本框表单输入 current_password 验证此 $pass 以继续为用户创建新密码。如何使用相同的验证器进行验证。抱歉,我是 laravel 新手。
$rules = array('password_current' => "required|same:$pass");
没用。
【问题讨论】:
因为same:用于确保当前字段的值与规则参数定义的另一个字段相同(not object)。所以你不能使用这个功能看看下面这个示例代码。
$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
【讨论】:
如果您已经将密码存储在 $pass 中,只需在请求中注入 $pass 并使用其字段代替例如
$request->request->add(['password_old' => $pass]);
然后,您可以像这样验证它
$rules = array('password_current' => "required|same:password_old");
【讨论】: