具有唯一电子邮件约束的管理员用户更改
Admin user change with unique email contraint
我在请求中使用唯一规则以确保没有输入重复的电子邮件。
查看 Laravel 文档,我看到了如何忽略发帖用户的电子邮件,但是管理员有权对用户进行更改怎么办。我仍然想检查唯一性但跳过正在修改的用户的电子邮件而不是管理员电子邮件。
有什么办法可以做到吗?
您只需传递您要修改的用户的 id
。
假设您的控制器中有
public function update(UserRequest $request, $id) {
...
}
然后在您的 UserRequest
中,您可以使用
检索路由参数 $id
public function rules() {
$id = $this->route('id') ?: 0;
return [
'email' => "required|unique:users,email,{$id}",
];
}
我在请求中使用唯一规则以确保没有输入重复的电子邮件。
查看 Laravel 文档,我看到了如何忽略发帖用户的电子邮件,但是管理员有权对用户进行更改怎么办。我仍然想检查唯一性但跳过正在修改的用户的电子邮件而不是管理员电子邮件。
有什么办法可以做到吗?
您只需传递您要修改的用户的 id
。
假设您的控制器中有
public function update(UserRequest $request, $id) {
...
}
然后在您的 UserRequest
中,您可以使用
$id
public function rules() {
$id = $this->route('id') ?: 0;
return [
'email' => "required|unique:users,email,{$id}",
];
}