我在请求中使用唯一规则,以确保不会输入重复的电子邮件。
查看Laravel文档,我看到了如何忽略发布用户的电子邮件,但是有权对用户进行更改的管理员又如何呢?我仍然想检查唯一性,但是跳过被修改的用户的电子邮件而不是管理员电子邮件。
我能以任何方式做到这一点吗?
答案 0 :(得分:1)
您只需要传递您要修改的用户的id
。
让我们在您的控制器中说出
public function update(UserRequest $request, $id) {
...
}
然后在您的UserRequest
中,您可以使用
$id
public function rules() {
$id = $this->route('id') ?: 0;
return [
'email' => "required|unique:users,email,{$id}",
];
}