使用composer安装验证码类库后,访问indx/captcha会出现如下错误。
看字面意思错误与路由有关,但是仔细检查了,能确定路由没有问题,再访问以前没有问题的页面发现都不能访问了。实在想不通为什么,然后就去 技术交流群 里面请教大神。
大神提供了两条思路:
1、可能版本的问题,tp版本与安装的验证码类库版本不兼容。
2、use错类,需要引入Route的代理类,而不是Route本身(这里用到了facade设计模式)
首先,按照第一条思路,项目的tp版本是5.1,安装的验证码类库版本是1.*,查阅了相关资料。发现验证码类库1.*适用于tp5.0,tp5.1可能不适用。最新的2.*才适用于tp5.1版本核心框架。
然后在命令行下更新验证码类库版本
composer require topthink/think-captcha=1.*
最后验证成功
果然是版本的问题,以后要多多注意。
但第二条思路引入Route的代理类(facade设计模式),我会仔细研究下,因为设计模式的相关知识还是很重要的。