【发布时间】:2017-12-12 08:56:11
【问题描述】:
我正在对请求使用唯一规则,以确保没有输入重复的电子邮件。
查看 Laravel 文档,我看到了如何忽略发布用户的电子邮件,但是对于有权对用户进行更改的管理员来说呢?我仍然想检查唯一性,但跳过被修改用户的电子邮件而不是管理员电子邮件。
有什么办法可以做到吗?
【问题讨论】:
标签: laravel laravel-5.5
我正在对请求使用唯一规则,以确保没有输入重复的电子邮件。
查看 Laravel 文档,我看到了如何忽略发布用户的电子邮件,但是对于有权对用户进行更改的管理员来说呢?我仍然想检查唯一性,但跳过被修改用户的电子邮件而不是管理员电子邮件。
有什么办法可以做到吗?
【问题讨论】:
标签: laravel laravel-5.5
您只需传递您尝试修改的用户的id。
假设在你的控制器中你有
public function update(UserRequest $request, $id) {
...
}
然后在您的UserRequest 中,您可以使用$id 检索路由参数
public function rules() {
$id = $this->route('id') ?: 0;
return [
'email' => "required|unique:users,email,{$id}",
];
}
【讨论】: