介绍
使用Laravel怎么实现多域名字段验证?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强>功能拆分强>
开始之前我们需要对系统各个功能点进行拆分,估算受影响的点:
<>强登录注册
强>
登录注册功能首当其冲,我们需要用户在注册时通过访问的域名不同,记录的身份也不同,所以我们需要进行如下的处理:
- <李>
增加字段身份
李> <李>进行判重
李> <李>进行登录验证
李> <强>数据处理强>
- <李>
这个就不进行讨论了。根据用户所属身份不同,调用的数据也不同就行了。
李> <强>注册判重
强>
判重依据:
我们知道使用<代码> php工匠:auth> 代码后,默认使用邮件登录,在表单验证中默认对电子邮件进行判重。代码如下:
默认表单验证:
//,路径:app/Http/控制器/认证/RegisterController.php protected function 验证器(array 元数据) { ,return 验证器:使($ data,, ,& # 39;名字# 39;,=祝辞,[& # 39;需要# 39;,,& # 39;字符串# 39;,,& # 39;马克斯:255 & # 39;], ,& # 39;电子邮件,,=祝辞,[& # 39;需要# 39;,,& # 39;字符串# 39;,,& # 39;电子邮件# 39;,,& # 39;马克斯:255 & # 39;,,& # 39;独特:用户# 39;], ,& # 39;密码# 39;,=祝辞,[& # 39;需要# 39;,,& # 39;字符串# 39;,,& # 39;分钟:8 & # 39;,,& # 39;确认# 39;], ,]); }
默认登录验证字段
//,路径:供应商/laravel/框架/src/照明//认证/AuthenticatesUsers.php基础 public function 用户名() { ,return & # 39;电子邮件# 39;; }//,当然可以修改验证字段(看过文档的都知道),注意:登录验证字段必须是在表里面唯一的。
现在我们需要分析我们的需求:
在单一用户后台中,电子邮件判重已经足够了,但是对于多种用户一起使用就不太够了。
假设:我们有A, B两个域名,对应A, B两种用户,我们需要在一张表中存储A, B,首先我们判断A, B是属于那个域名的站(点),其次,看这个用户是否重复。
下面我们用Laravel表单验证来实现一下:
<强> 1,增加字段:强>
为方便演示,我直接在进行身份验证生成的迁移文件上直接修改,大家不要在实际项目中直接修改,而是通过新建迁移文件,使用修改表结构的方式增加字段
public function 了() { ,模式:创建(& # 39;用户# 39;,,function (Blueprint $表),{ 美元,表→bigIncrements (& # 39; id # 39;); 美元,表→字符串(& # 39;名字# 39;); 美元,表→字符串(& # 39;电子邮件# 39;);,//,去掉原来的独一无二的 美元,表→字符串(& # 39;身份# 39;);,//,增加的字段 美元,表→时间戳(& # 39;email_verified_at& # 39;)→nullable (); 美元,表→字符串(& # 39;密码# 39;); 美元,表→rememberToken (); 美元,表→时间戳(); ,}); }
<>强注意:强>在这个需求中,我们对迁移文件中名字的电子邮件和字段不需要进行独特的限定,因为他们的唯一性是有依赖的,不是独立的。
<强> 2,模拟用户注册,插入身份信息强>
//,路径:,app/Http/控制器/认证/RegisterController.php protected function 创建(array 元数据) { ,return 用户::创建([ ,& # 39;名字# 39;,=祝辞,$ data[& # 39;名字# 39;], ,& # 39;电子邮件,,=祝辞,$ data[& # 39;电子邮件# 39;], ,& # 39;密码# 39;,=祝辞,散列:使($ data[& # 39;密码# 39;]), ,& # 39;身份# 39;,=祝辞,& # 39;pcsoft& # 39;,,//,模拟用户注册时,插入身份字段值 ,]); }
<强> 3,进行判重处理强>
protected function 验证器(array 元数据) { ,return 验证器:使($ data,, ,& # 39;名字# 39;,=祝辞,[& # 39;需要# 39;,,& # 39;字符串# 39;,,& # 39;马克斯:255 & # 39;], ,& # 39;电子邮件,,=祝辞,[& # 39;需要# 39;,,& # 39;字符串# 39;,,& # 39;电子邮件# 39;,,& # 39;马克斯:255 & # 39;,,规则::独特(& # 39;用户# 39;)→(function (查询),{ 查询→美元才能在(& # 39;身份# 39;,,& # 39;=& # 39;,,& # 39;onlinedown& # 39;); ,}))//,这句话的意思:按照什么条件对,users 表中的,email 去重,我们需要按照身份字段等于我们访问的域名对,email 去重, ,& # 39;密码# 39;,=祝辞,[& # 39;需要# 39;,,& # 39;字符串# 39;,,& # 39;分钟:8 & # 39;,,& # 39;确认# 39;], ,]); }使用Laravel怎么实现多域名字段验证