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

时间:2017-01-19 08:44:08

标签: cakephp cakephp-2.0

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

5 个答案:

答案 0 :(得分:1)

试试这个

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

答案 1 :(得分:1)

尝试:

 $ctrObj = $this->_Collection->getController();

获取课程名称:

 $ctrName = get_class($ctrObj);
 die('<h1>Class name: ' . $ctrName . '</h1>');
 // Result: "Class name: FooController"

获得简单的名称:

 $ctrName = $ctrObj->name;
 die('<h1>Simple Name: ' . $ctrName . '</h1>');
 // Result: "Simple Name: Foo"
祝你好运

答案 2 :(得分:0)

我对CakePHP并不熟悉,可能还有内置的方法。但是如果您运行PHP 5.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) 

会奏效。

因此,内部组件(I am referring here)static::class分配给变量将会起作用,我相信。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

使用$this->params['controller'] to get the current controller.

您可以debug($this->params)查看其他可用变量。