我正在创建一个需要记录当前控制器名称的行为。如何从CakePHP中的模型中获取当前控制器名称?
答案 0 :(得分:5)
我知道这个问题很老了,但这里适当的解决方案是:
$this->params['controller']
有关'params'属性的更多信息:
http://book.cakephp.org/view/963/The-Parameters-Attribute-params
答案 1 :(得分:3)
试试这个。如果你只需要控制器的名称。
Inflector::pluralize($this->name);
答案 2 :(得分:2)
$GLOBALS['Dispatcher']->params['controller']
将为您提供控制器名称
答案 3 :(得分:0)
PHP的Magic Constants之一是__CLASS__
,它将返回它所在对象的类名。这可以为您提供所需的一切。
http://php.net/manual/en/language.constants.predefined.php
魔术常数和方法很有趣。
答案 4 :(得分:0)
我找到了一个解决方案,它并不漂亮,但对我有用。我只是使用$ _REQUEST ['url']并通过url捕获de控制器名称。这个解决方案的缺点是,如果你有一个不同的默认路由,这个解决方案将无法工作......任何人都有更好的方法吗?
答案 5 :(得分:0)
对于任何重新访问此问题并使用 CakePHP 3.x 的人:
$this->request->getParam('controller')