在我的设置密码视图中,我想允许用户编辑自己的用户名和电子邮件。
在我的控制器中,我强制我的验证忽略具有相同激活码的用户的验证。
我仍然收到错误消息。我知道,我错过了一步,我不知道如何解决这个问题。
你能给我一个快速提示或指出我错过的东西吗?
我已经尝试过了,这就是我想出的。
代码
public function postSetPassword(){
$user = User::where('code','=', Input::get('code'))->firstOrFail();
$code = $user->code;
$validator = Validator::make(Input::all(), array(
'password' =>'required|min:6',
'password_again' =>'required|same:password',
'logo_path' =>'max:255',
'username' =>'required|unique:users,username,'. $code,
'email' =>'required|email|unique:users,email,'. $code,
... more ...
答案 0 :(得分:0)
可能有很多方法可以做到这一点,但我想到的就是这个。如果用户没有更改用户名或电子邮件,请不要验证用户名或电子邮件。
$user = User::where('code','=', Input::get('code'))->firstOrFail();
$validationRules = array(
'password' =>'required|min:6',
'password_again' =>'required|same:password',
'logo_path' =>'max:255'
);
if($user->email != Input::get('email')){
$validationRules['email'] = 'required|email|unique:users,email';
}
if($user->username != Input::get('username')){
$validationRules['username'] = 'required|unique:users,username';
}
$validator = Validator::make(Input::all(), $validationRules);