首页 > 后端开发 > 正文

php框架控制器action TP6多应用模式下如何获取不到当前控制器和方法名

2023-09-30 07:42:33 | 我爱编程网

今天我爱编程网小编整理了php框架控制器action TP6多应用模式下如何获取不到当前控制器和方法名相关内容,希望能帮助到大家,一起来看下吧。

php框架控制器action TP6多应用模式下如何获取不到当前控制器和方法名

TP6多应用模式下如何获取不到当前控制器和方法名





下面由thinkphp框架教程栏目给大家介绍TP6多应用模式下如何获取不到当前控制器和方法名,希望对需要的朋友有所帮助!
前言:最近使用TP6做了一套项目,发现多应用模式下使用 $this->request->controller() 和 $this->request->action() 无法获取到当前的控制器和方法名,自己研究了一下,找了个笨办法,记录一下,如果大家有更好的办法,欢迎留言。
开发环境
windwos 10
PHP 7.3
TP 6.0.2问题重现
1、先创建一个新项目
composer create-project topthink/think tp60cd tp60/
composer require topthink/think-multi-app2、修改 /config/app.php 加入下面两行
//开启应用快速访问'app_express' => true,3、修改 /config/route.php
// 是否强制使用路由'url_route_must' => true,// 路由是否完全匹配'route_complete_match' => true,4、删除 /app 下面的 controller 目录,创建 index 文件夹,目录结构如下:
5、上代码,IndexController.php 的内容:
<?phpnamespace appindexcontroller;use appBaseController;class IndexController extends BaseController{
public function index()
{
dd($this->request->controller(), $this->request->action());
}}/app/index/route/app.php 的内容
<?phpuse thinkfacadeRoute;Route::group(function () {
Route::get('/', 'IndexController@index');})->prefix('appindexcontroller\');6、启动然后访问该应用,控制器与方法输出都是空。
php think run
解决方案
调试发现 $this->request 对象的 rule 里面有当前控制器和方法名
可使用 $this->request->rule()->getName()或$this->request->rule()->getRoute() 获取,
谜之操作
另外调试发现,Controller 的 init 方法好像没执行,在 Request 里面打两个断点,一样可以访问,可以用上面的方法获取到控制器和方法名。

php框架控制器action TP6多应用模式下如何获取不到当前控制器和方法名

如何在laravel routesphp里获取控制器和action名称

添加进去代码以后,根据提示找到Controllerclassphp,手动添加如下代码: /** * 获取当前Action名称 * @access protected */ protected function getActionName() { if(empty($this->name)) { // 获取Action名称 $offset=strrpos(get_class($th如何在laravel routesphp里获取控制器和action名称

php框架控制器action TP6多应用模式下如何获取不到当前控制器和方法名

thinkphp怎样在Action控制器里 时间戳格式化

不管是从数据库里提取出来的时间戳还是在代码中获取的时间戳,在THINKPHP里格式化时间,两种情景下格式化的方式:

情景一(Action控制器): 我爱编程网

和在原生PHP代码中格式化一样,使用date函数:

$time = date("Y-m-d", $time)

情景二(模板):

{$time|date='Y-m-d',###}

以上就是php框架控制器action TP6多应用模式下如何获取不到当前控制器和方法名全部内容,更多相关信息,敬请关注我爱编程网。
与“php框架控制器action TP6多应用模式下如何获取不到当前控制器和方法名”相关推荐
tp框架php注册控制器代码 TP6多应用模式下如何获取不到当前控制器和方法名
tp框架php注册控制器代码 TP6多应用模式下如何获取不到当前控制器和方法名

ThinkPHP要做一个登录判断的控制器让其他控制器来继承它,如果没登录就跳转到登录页面,怎么写?新建一个commonController控制器,然后把下边代码复制进去,登录成功就创建session,否则就检测当前访问的控制器和方法有没有在允许访问的方法内,有就允许访问,没有就跳转到登录.&lt;?phpnamespace Admin\Controller;use Think\Cont

2023-10-07 02:57:53
php框架控制器 php框架搭建方法?
php框架控制器 php框架搭建方法?

php框架搭建方法?php框架搭建步骤:1.项目初始化首先我们在自己的web目录下创建我们的项目目录,我暂且把项目命名为hellovod,因此我的电脑目录就是:D:laragonwwwhellovod。在该目录下创建composer.json文件。2.添加入口文件初始化完毕后,我们来配置入口文件。在hellovod目录下新建一个public文件夹,并在该文件夹下创建

2023-09-16 17:27:00
php跨框架调用方法 THINKPHP 中跨控制器调用类,跨模型调用类
php跨框架调用方法 THINKPHP 中跨控制器调用类,跨模型调用类

php异步调用方法是什么php异步调用的方法:1、在返回给客户端的HTML代码中,嵌入AJAX调用,或者嵌入一个img标签,src指向要执行的耗时脚本;2、使用popen函数打开一个指向进程的管道,该进程由派生给定的command命令执行而产生。【相关学习推荐:php编程(视频)】1.最简单的办法,就是在返回给客户端的HTML代码中,嵌入AJAX调用,或者,嵌入一个img标签,s

2023-09-23 23:09:20
ci框架引入php文件 如何在php文件中调用ci控制器中的方法
ci框架引入php文件 如何在php文件中调用ci控制器中的方法

用php的CI框架怎么写登录和注册第一步:login.php//登陆方法publicfunctionlogin(){//如果用户名和密码为空,则返回登陆页面if(empty($_POST['username'])||empty($_POST['password'])){$data['verifycode']=rand(1000,9999);//生成一个四位数字的验证码

2023-09-18 04:56:49
php框架创建控制器代码 php框架搭建方法?
php框架创建控制器代码 php框架搭建方法?

用ThinkPHP框架,写个Index控制器,里面直接就是$this->display()到后台首页模版,但是出现了问题我刚才简单测试了一下你的代码。首先是提交肯定没啥问题,之后是后台,我按照你写的告诉我页面错误,但是可以输出并正常获取数据库查询内容,大概是下面的样子然后输出内容是这样的。之后把$this-&gt;display();去掉就没问题了ThinkPHP要做一个登录判断的控制器

2023-10-04 23:47:17
php模拟浏览器框架 如何用php模拟浏览器post二进制数据到服务器
php模拟浏览器框架 如何用php模拟浏览器post二进制数据到服务器

php模拟浏览器获取get后返回的所有网址模拟GET请求:file_get_contents($url)通过php内置的file_get_contents函数可以模拟浏览器访问网址的行为。取的结果就是那个网址所返回的所有网址。网页浏览器(WebBrowser),常被简称为浏览器,是一种用于检索并展示万维网信息资源的应用程序。这些信息资源可为网页、图片、影音或其他内容,它们由统一资

2023-09-30 21:54:29
php框架如何访问控制器 thinkphpview怎么调用controll
php框架如何访问控制器 thinkphpview怎么调用controll

thinkphp5怎么获取当前的模块,控制器和方法名thinkphp5系列需要获取当前的模块、控制器以及方法名称,可以使用自带的Request类,也可以使用request助手函数。接下来举例说明:假设我们现在访问的地址是index/member/add,我们来获取这个地址的模块、控制器、方法名称1、获取模块名:echo"当前模块名称是:".request()-&gt;mo

2023-10-05 02:45:53
创建php框架控制器代码 用ThinkPHP框架,写个Index控制器,里面直接就是$this->display()到后台首页模版,但是出现了问题
创建php框架控制器代码 用ThinkPHP框架,写个Index控制器,里面直接就是$this->display()到后台首页模版,但是出现了问题

用ThinkPHP框架,写个Index控制器,里面直接就是$this->display()到后台首页模版,但是出现了问题我刚才简单测试了一下你的代码。首先是提交肯定没啥问题,之后是后台,我按照你写的告诉我页面错误,但是可以输出并正常获取数据库查询内容,大概是下面的样子然后输出内容是这样的。之后把$this-&gt;display();去掉就没问题了自己用PHP书写一个类和一个控制器,类里

2023-10-04 16:49:02