【发布时间】:2017-10-07 13:39:03
【问题描述】:
我尝试允许用户在他们的面板中更改(更新)他们的信息,我也想让他们更改他们的电子邮件地址和密码,但这是可选的,例如他们可能只是想更改他们的名字而不是更改电子邮件地址或密码,验证方法是什么?
我目前的验证是这样,但会返回电子邮件地址相同的错误:
public function update(Request $request, $id)
{
$user = User::find($id);
$this->validate($request, array(
'name' => 'required|string|max:255',
'email' => 'nullable|string|email|max:255|unique:users',
'gender' => 'required|string',
'password' => 'nullable|string|min:6|confirmed',
));
$user = User::find($id);
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->gender = $request->input('gender');
$user->password = $request->input('password');
$user->save();
Session::flash('success', 'Your information was successfully updated.');
return redirect()->route('users.list', $user->id);
}
【问题讨论】:
-
删除唯一的:用户
-
@BilalAhmed 这不是一个稳定的东西。删除这样的重要规则不是一个好选择。
-
没有人这样做。您必须创建另一个页面以更新电子邮件地址
-
@BilalAhmed 删除 unique:users 我的问题将得到解决,但如果他们使用其他用户的电子邮件怎么办?
kristoff我在他们的个人资料中编辑用户信息我应该制作其他页面吗?为什么? -
'email' => 'required|string|email|max:255|unique:users,'.$id,// 验证除现有 id 之外的唯一电子邮件请立即查看答案
标签: php laravel validation