Non-static method think\Route::get() should not be called statically

使用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设计模式),我会仔细研究下,因为设计模式的相关知识还是很重要的。

发布了84 篇原创文章 · 获赞 33 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_35383263/article/details/100114008