thinkphp6.0在命令行通过php index.php index/index/test的方式访问控制器

来源:WX部落

文章主要讲了如何在thinkphp6.0中,通过命令行访问控制器的方法

在tp5.1中我们可以在命令行中直接访问控制器,如下图所示,命令为:php index.php index/index/test

可是在tp6.0中,这种方式却不生效了,命令行中所有的请求,统统指向了index/index/index,感觉应该是没有识别请求的参数导致的。

先看一下tp5.1中thinkphp\library\think\Request.php的代码,查找pathinfo方法,如下图所示

可以看到这里有一个$this->isCli()的判断,当在命令行中访问控制器的时候,就会进入这个判断中,这里就是将命令行中的第2个参数index/index/test赋值给了$pathinfo。

下面我们再来看一下tp6的源码,vendor\topthink\framework\src\think\Request.php,找到pathinfo方法,如下图所示

可以看到这里最后一个判断false !== strpos(PHP_SAPI,'cli'),当我们在命令行中访问控制器中的方法的时候,会走到这个判断中,这里我们将这段代码注释掉,将tp5.1中的代码拷过来。如下图所示

然后,我们在命令行中再执行php index.php index/index/test,就可以执行test方法了。

不过还是发现个问题,无法传递参数,tp5.1中通过php index.php index/index/test?name=hello 是可以传递参数的,tp6不可以,感觉应该是Controller类的问题,有时间再研究一下。

声明:

① 凡本网所有原创文章及图片、图表的版权均属WX部落所有,如需转载,需注明“信息来源:WX部落”,并且添加本文地址:http://wxbuluo.com/index/article/42.html

② 凡本网注明“来源:XXX(非WX部落)”的文字及图片内容,均转载自其他媒体,版权归原媒体及作者所有。转载目的在于传递更多的资讯,并不代表本网赞同其观点和对其真实性负责。如有侵权,请联系删除。联系方式:296720094@qq.com

③ 本网站的资源部分内容来源于网络,仅供大家学习与参考,如有侵权,请联系站长296720094@qq.com进行删除处理。

④ 部分项目课程具有时效性,如发布时间较长请搜索相关课程选择发布时间最近的查看。

⑤ 部分具有时效性的项目课程文章,我们会逐步转移到免费类分类开放下载。同时免费分类链接失效不补!

⑥ 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。