【问题标题】:Use helper in plugin-controller CakePHP在插件控制器 CakePHP 中使用助手
【发布时间】:2023-03-27 00:13:01
【问题描述】:

我已经制作了一个插件。插件中的控制器工作正常。在控制器中我想在控制器中使用 HtmlHelper。

但是......控制器在抱怨:$this->Html 保持null

插件中的控制器包含:public $helpers = array('Html'); 出于调试目的,我已将 $helpers 的位置更改为 AppController。 在文件夹控制器中,我添加了一个从AppController 扩展的TestsController。他有一个工作的 HtmlHelper。

我的插件控制器也扩展自AppController

插件控制器:
- UserManagerAppController 扩展自 AppController
- UsercomponentsController 从 UserManagerAppController 扩展

普通控制器文件夹:
- AppController 从控制器扩展

为什么 UsercomponentsController 不包含 HtmlHelper?

【问题讨论】:

  • “在文件夹控制器中,我添加了一个从 AppController 扩展的 TestsController。他有一个工作 HtmlHelper。”你到底是怎么做到的?你曾经能够在控制器中调试($this->Html) 并获得一个非空值吗?

标签: cakephp helper


【解决方案1】:

首先,public $helpers = array('Html');不会在您的控制器中加载帮助程序,它会在您的控制器呈现的视图文件中加载它。您将能够在呈现的视图中使用 $this->Html 引用,而不是任何控制器操作。这与您尝试将 Helper 加载到插件控制器还是普通控制器无关。

检查Cake Docs 中的包树并阅读更多关于组件和助手之间的区别。您可以在控制器中使用Component,在视图中使用Helper。您不需要在控制器中使用 HtmlHelper(它有助于创建 HTML 表单元素)。这将打破 MVC 范式。

【讨论】:

  • 感谢您的帮助。是的,这是一个误会。我现在很清楚了。
猜你喜欢
  • 1970-01-01
  • 2012-08-09
  • 2013-04-13
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多