我有一个页面设置来重置用户的电子邮件地址密码和应用程序的用户 zip_code。我让它正常工作,但是,例如,如果我只想更改邮政编码,我的验证将不允许它,因为它读取数据库中已经存在的电子邮件并返回错误。解决这个问题的最佳方法是什么?我可以为每个字段创建一个控制器并单独执行,但我觉得我可以使用一些 if 语句?
控制器:
enter
public function getEditUser() {
$userdata = array(
'email' => Input::get('email'),
'password' => Input::get('password'),
'confirm_password' => Input::get('confirm_password'),
'user_zip_code' => Input::get('user_zip_code')
);
$rules = array(
'email' => 'required|email|unique:users,email',
'password' => 'required|min:5',
'confirm_password' => 'required|same:password',
'user_zip_code' => 'required'
);
$validation = Validator::make($userdata, $rules);
if ($validation->fails()) {
return Redirect::to('dashboard/edit/account')->withErrors($validation)
->withInput();
}
$userdata['password'] = Hash::make($userdata['password']);
$userdata['confirm_password'] = Hash::make($userdata['confirm_password']);
User::find(Auth::user()->id)->update($userdata);
return Redirect::to('dashboard');
}
独特的需要很明显,所以它不会与另一个帐户匹配
我的电子邮件也是通过身份验证设置的。Auth::user()->email
如果有帮助