【问题标题】:CakePHP Access function in current controller from appController来自 appController 的当前控制器中的 CakePHP 访问函数
【发布时间】:2014-09-12 17:03:13
【问题描述】:

我在 appController 中有一个函数,它需要访问当前正在调用的控制器中的函数(如果存在)。我不知道怎么弄...

在我的 appController 的功能中,我有:

$modelName = $this->modelClass;
$controllerName = Inflector::pluralize($modelName)."Controller";
$myVar = array(..., ..., ...);

我试过了

$myVar = $$controllerName->modifyTable($myVar);

但这不起作用。

想法?

【问题讨论】:

  • 这看起来很奇怪。 $this->modifyTable() 怎么样?
  • 将您希望在多个控制器之间共享的功能移动到一个组件中。
  • @Kai 我不想在多个地方使用它们,我想在特定控制器中定义函数,我用来修改 AppController 中的通用函数。否则,为了更改一个变量,我会将整个函数复制粘贴到每个单独的控制器。
  • 为什么这会被否决?

标签: cakephp controller


【解决方案1】:

试试这个:

public function whatever_name(){
    $modelName = $this->modelClass;
    $controllerName = Inflector::pluralize($modelName)."Controller";
    $myVar = array(..., ..., ...);
}

然后你可以在你的控制器中这样调用它:

$this->whatever_name();

如果这不起作用,请尝试创建一个组件或助手 w/c 我认为这是更清洁的解决方案;)

【讨论】:

  • 我正试图做完全相反的事情——在 AppController 中调用函数,而不是在单个控制器中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-25
  • 1970-01-01
相关资源
最近更新 更多