mysql - Laravel 中每种类型用户的唯一电子邮件
问题描述
我想用相同的电子邮件注册许多用户,但类型不同
例如 1@gmail.com 类型 1 2@gmail.com 类型 2
电子邮件将是唯一的,类型是条件。如果类型不是输入,我该如何编写规则
这是我的代码验证器,但它失败了,因为类型不是输入
public function rules()
{
return [
'name' => 'required|min:3',
'password' => 'required',
'phone' => 'required|unique:users|numeric',
'email' => [
'required',
'email',
Rule::unique('users')
->where('type', $this->type)
]
];
}
解决方案
$validate = [
'name' => 'required|min:3',
'password' => 'required',
'phone' => 'required|unique:users|numeric',
'plan_name' => [
'required',
'email',
Rule::unique('users')->where(function ($query) use ($request) {
return $query->where('type', $request->type);
})
]
];
$this->validate($request, $validate);
我认为这会有所帮助
推荐阅读
- python - 我想在 python 中使我的情节顺利,我该怎么做?
- clickhouse - 基于聚合物化视图创建物化视图
- swiftui - 背景音频在 SwiftUI 应用程序中导航到不同视图时停止?
- javascript - 如何在 HTML + JavaScript 中设置管理员密码
- php - 安全原因 PHP
- flutter - 由于索引而重复小部件
- python - 如何使用Python获取存储在字典中的边列表中节点的三角形计数和局部聚类系数?
- java - 如何修复 SpringBoot 中 RestController 中的转换器?
- amazon-web-services - 如何在 Pulumi 中实现共享资源
- javascript - 如何在Javascript中从一天结束倒计时?