我在更新记录时遇到问题。我有一个用户可以注册的页面,它完美无缺,有 4 个字段:电子邮件、用户名、密码和确认密码。这是一个简单的注册页面,我不想通过提供很多要填写的东西来关闭访问者,比如全名和国家,所以这两个字段可以在他们的“更新个人资料”页面上更新。个人资料页面分为多个区域,主要区域是一个单一的表单,其中只有这 2 个字段可以更新,因此这里没有用户名、电子邮件、密码字段 - 只有全名和国家。
控制器更新配置文件代码
$user = User::find($id);
$user->fullname = Input::get('fullname');
$user->country = Input::get('country');
if (!$user->save())
{
return Redirect::to('edit-profile')->withInput()->withErrors($user->errors());
} else {
return Redirect::to('edit-profile')->withMessage('Profile successfully updated!');
}
我的用户模型规则。我正在使用 Ardent:
public static $rules = array(
'username' => 'required|between:3,20|unique:users|alpha_dash',
'email' => 'required|email|unique:users',
'password' => 'required|min:5|confirmed',
'password_confirmation' => 'min:5',
'fullname' => 'between:5,50',
'country' => 'between:3,50'
);
这里的问题是它返回一条错误消息,说“密码不匹配。”。因此,Laravel 似乎在查询中添加了密码字段,并且还尝试验证密码是否匹配。我不想为此创建单独的模型或单独的规则。我该如何解决这个问题?