如何在cakephp(2.x)组件中获取控制器名称?

如何在cakephp(2.x)组件中获取控制器名称?,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,任何人都可以建议我如何在cakephp组件函数中获取控制器名称 我对CakePHP不太熟悉,可能有一个内置的方法。但如果您运行的是PHP5.5+,下面的代码可能会给您带来灵感 class Foo { public function name_of_this_controller() { return static::class; } } $f = new Foo(); echo $f->name_of_this_controller() #=> "Foo" 对于旧

任何人都可以建议我如何在cakephp组件函数中获取控制器名称

我对CakePHP不太熟悉,可能有一个内置的方法。但如果您运行的是PHP5.5+,下面的代码可能会给您带来灵感

class Foo {
  public function name_of_this_controller() {
    return static::class;
  }
}

$f = new Foo();
echo $f->name_of_this_controller() #=> "Foo"
对于旧版本的php

get_class($f) 
会有用的


因此,在组件内部,我相信将
static::class
分配给变量会起作用。

我对CakePHP不太熟悉,可能有一种内置的方法可以实现这一点。但如果您运行的是PHP5.5+,下面的代码可能会给您带来灵感

class Foo {
  public function name_of_this_controller() {
    return static::class;
  }
}

$f = new Foo();
echo $f->name_of_this_controller() #=> "Foo"
$this->request->params['controller']
对于旧版本的php

get_class($f) 
会有用的


因此,在组件内部,我相信将
static::class
分配给变量会起作用。

使用
$this->params['controller']获取当前控制器。

$this->request->params['controller']

您可以执行
调试($this->params)
以查看其他可用变量。

使用
$this->params['controller']获取当前控制器。

您可以执行
调试($this->params)
以查看其他可用变量。

试试这个

Router::getRequest(true)->param('controller');
试试这个

Router::getRequest(true)->param('controller');
尝试:

 $ctrObj = $this->_Collection->getController();
获取类名:
$ctrName=get_类($ctrObj);
die('类名:'.$ctrName.');
//结果:“类名:FooController”
获取简单名称:
$ctrName=$ctrObj->name;
模具('简单名称:'.$ctrName.');
//结果:“简单名称:Foo”
祝你好运

试试:

 $ctrObj = $this->_Collection->getController();
获取类名:
$ctrName=get_类($ctrObj);
die('类名:'.$ctrName.');
//结果:“类名:FooController”
获取简单名称:
$ctrName=$ctrObj->name;
模具('简单名称:'.$ctrName.');
//结果:“简单名称:Foo”

祝您好运

我找到了一种方法,您可以检查此方法以在组件中获取控制器名称:$currentURL=Router::url($this->here,true);$myurl=parse_url($currentURL)$split=explode(“/”,$myurl['path'])$controllerName=ucfirst($split[2]);我找到了一种方法,您可以检查此方法以在组件中获取控制器名称:$currentURL=Router::url($this->here,true);$myurl=parse_url($currentURL)$split=explode(“/”,$myurl['path'])$controllerName=ucfirst($split[2]);