近期在写ThinkPHP8时遇到了一个问题,就是我在新增时没有限制id,但是他却响应我id不能为空,后面发现是ThinkPHP8加了校验器。
bug出现

详细代码



当我去底层看的时候发现了问题所在
在model类的save方法中多了一层校验

在validateAndFilterData方法中调用validate方法

在validate方法中,获取了配置项中的validate

在model类中发现改配置项默认值为parseValidate方法获取的值

默认值为model类的命名空间把model换成validate

当model层命名空间为
namespace app\model;
默认的validate层命名空间就为
namespace app\validate;
修复bug
在model层中设置validate为空字符串就可以了

修复结果

