unique 规则不生效,其他的验证规则生效是什么问题?

file

设置好验证属性之后,突然发现只有 unique 这个属性并没有显示出自定义的错误提示,而是报了 500 的 sql 的错误
file
其他的验证规则都会显示自定义的错误提示,并没有问题,求解

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 14
liyu001989

你确定执行了验证规则吗,email的unique 有用?name的unqiue没用?

5年前 评论

@liyu001989 执行了,name 的 required、regex、between 都生效了,就是 unique 不生效

5年前 评论

@liyu001989 基于我之前的图

file

file

file

只有 unique 这个规则没有生效。

5年前 评论
liyu001989

你是调用的哪个接口?用户注册?

5年前 评论

@liyu001989 是的 注册接口,POST 请求,不是 PATCH 请求

5年前 评论
liyu001989

我也没有看出来问题在哪。。。验证的地方加个日志调试一下?

5年前 评论

@liyu001989 找到了不执行自定义报错的原因:对于所有的新增用户(除了一开始通过 table seed 填充的),只要再次注册的名字对我新增的这部分用户重名了,就会直接报 sql 的错误,但是如果新增的这个用户名是重 (duplication) 的通过 table seed 填充的数据的用户名,会报自定义的错误。大神有什么解决思路吗?

5年前 评论
liyu001989

file

file

我没有重现你的问题。

5年前 评论

@liyu001989 不要用 table seed 填充的用户进行重名的验证,我是通过接口先新建一个用户,然后再新建的时候用户名重复之前建的那个用户,就会出现我的问题。如果是新建的用户名和通过 table seed 建立的用户比较,是可以出提示的。

file

file

file

id 为1-10的是 table seed 填充的。

file

5年前 评论
liyu001989

file

file

没重现,你的 laravel 版本?使用的环境?涉及到多数据库了吗?你是在实现你自己的业务,还是在学习教程?教程中有该问题?

验证没有 unique 问题,插入却有,要么验证是验证的地方出问题,要么是数据库出问题,朝这两个方向查吧

5年前 评论

@liyu001989 教程是没问题的,环境是公司服务器,之前的项目单数据库是没问题的,这次涉及到多数据库了,我觉得是验证数据库出问题了,导致 unique 没有生效,那我朝这个方向查查问题。感谢

5年前 评论
liyu001989

file

5年前 评论

@liyu001989 刚刚解决了。需求就是接口访问的时候添加一个字段就连不同的数据库。应该在 config/database.php 进行接口数据的判断,之前是所有的 model 继承一个基类实现连接不同的数据库。但是 request 并没有建立在我自定义连接的数据库的基础上,一直都是判断的默认数据库的数据。所以才会出现那种错误。

这样就很简单的实现了:

file

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!