mysql - 如何在使用 laravel 表单请求更新数据时验证电子邮件的唯一性?
问题描述
我正在使用表单请求将数据验证为更新方法。我正在尝试将电子邮件验证为唯一值,期望像这样请求用户电子邮件
public function rules() {
$user = $this->user();
return [
'name' => 'required|max:255|string',
'email' => 'required|email|max:255|unique:users,email,'.$user->id,
'restaurant' => 'required',
];
}
但它不起作用,如何将请求的用户 ID 访问到表单请求中?
解决方案
我将假设您正在发布一个用户对象,其中id
包含在您的$request
数据中。
如果您要存储新记录并且电子邮件需要可用,您可以使用:
use Illuminate\Validation\Rule;
...
public function rules() {
return [
'name' => 'required|max:255|string',
'email' => ['required', 'email', 'max:255', Rule::unique('users')],
'restaurant' => 'required',
];
}
如果您想忽略您的用户-> id,因为您正在更新您的记录并且显然电子邮件是由用户接收的:
use Illuminate\Validation\Rule;
...
public function rules() {
return [
'name' => 'required|max:255|string',
'email' => ['required', 'email', 'max:255', Rule::unique('users')->ignore($this->id)],
'restaurant' => 'required',
];
}
推荐阅读
- python - Tensorflow 从字符串句柄创建第二个迭代器 - GetNext() 失败,因为未初始化
- r - 使用 cloudml 训练 R Keras 模型失败
- python-3.x - 设置路径变量时,在 python 中的 F:drive 中导入 pytesseract 错误
- c# - Fiddler 未从 .Net Core 捕获流量
- cordova - YouTube Player API iframe 在 phonegap 运行时关闭灯
- python - 为什么 BeautifulSoup 没有找到特定的类?
- kotlin - 没有静态方法 dispatchUnhandledKeyEventPre
- angular5 - 如何使用 Angular5 使用 *ngIf 检查多个变量?
- facebook - Facebook - 访问其他人在该人时间线上发布的帖子
- android - 删除特定的堆栈活动