Laravel多域名下字段验证的方法(2)
注意: 在这个需求中,我们对迁移文件中的email和name字段不需要进行unique限定,因为他们的唯一性是有依赖的,不是独立的。
2、模拟用户注册,插入身份信息
// Path: app/Http/Controllers/Auth/RegisterController.php
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'identity' => 'pcsoft', // 模拟用户注册时,插入身份字段值
]);
}
3、进行判重处理
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users')->where(function ($query) {
$query->where('identity', '=', 'onlinedown');
})], // 这句话的意思:按照什么条件对 users 表中的 email 去重,我们需要按照身份字段等于我们访问的域名对 email 去重,
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
4、测试
进行第一次注册,数据库截如下:

进行第二次注册,相同邮件,不同身份:

相同身份,相同邮箱测试
