TP5 错误集合
以下都是个人在使用的时候遇到的错误,其中的解决方案仅供参考:
多看手册,如果按照手册没成功,要么是忽略了细节,要么是理解不正确。
1.未定义的数组索引
查询数据库,where条件是个数组,接收的是POST传来的数据,我查询的是‘passwd‘=>$_POST['passwd] 实际上传过来的是 password,然后就一直报错passwd是未定义的数组索引。
2.自己定义的验证类不存在
系统有定义好的验证类,手册上说可直接使用。
如果非要自定义,看手册上有明确的例子 定义一个用于验证的User类 注意他的命名空间是 app\index\validate 也就是 验证类放在 application\index\validate 中 即 index模块下的validate文件夹中
比如我定义了一个 Validateforadmin验证类,命名空间是 app\admin\validate
模块里没有validate文件夹 就要新建文件夹。
然后 到model 里 两种方法调用刚才创建的 Validateforadmin.
首先要应用相应的命名空间,其实就是调用 验证里的check方法进行验证, 如果失败会返回错误信息,至于错误信息返回怎么处理,自己发挥。
3.验证码生成错误
如果模版上验证码是一个没有显示的图片,那么把配置文件验证码的中的背景图片改成false。
如果是Call to undefined function captcha_src() 或者 Call to undefined function captcha_img() ,去看项目根目录下的vendor文件夹是否为空,这个文件夹放的是扩展类库,里面有个gitignore,会忽略所有文件,如果你是用git拉下来的项目,这里面应该是空的,去下载一个对应版本的tp包,把对应文件夹里的东西放进来即可。
如果vendor不为空,那就用composer下载对应的类库。我遇到的这个问题的原因是,在公司部署的项目,上传到gitlab上,然后回到家直接clone下来,然后登录模版上的验证码就提示未定义的方法,到类库一看,原来类库没有上传,因为有gitignore文件,忽略所有新增......
4.找不到表的模型,提示类不存在
表名带下划线:tp_admin_menu_list,实例化对应模型找不到model
我定义的模型如下:
错误信息提示如下:
查看报错的路径是common\model ,我自己建立的model在对应的目录下,怎么还跑common文件夹里找了,表的下划线呢?难道是模型的命名不对?查看官方文档:
表名 tp_admin_menu_list 对应的模型类名和文件名都应该是AdminMenuList。
如果对你有帮助,请点个赞,谢谢