【问题标题】:cakephp - how to define cake php helpes correctlycakephp - 如何正确定义 cakephp 助手
【发布时间】:2014-01-20 13:54:19
【问题描述】:

我有一个扩展 AppController 的 ItemsController。 为了处理我的站点菜单,我使用了menuhelper。 但是,我在the documentation 中看到您必须将助手添加到控制器(AppController)的数组中:

public $helpers = array('Form', 'Html', 'Menu');

奇怪的是我忘记了它,我的菜单仍然有效。 此外,您始终必须将 Form 和 Html extra 添加到数组中,否则它们将不再起作用。 但是,当我在 AppController 中执行此类操作时,我的表单助手仍然可以工作:

public $helpers = array('Menu');

所以似乎无论我做什么,它仍然有效,但我不明白为什么,我不喜欢自动“魔法”:)

我在文档中遗漏了什么吗?

【问题讨论】:

  • 展示你是如何使用这些助手的?
  • 好吧,在添加视图中,我使用 "$this->Form->create('something')" ,对于菜单插件,我调用 "$this->Menu->render ($menu)" 在我的默认布局中,这也有效。

标签: cakephp cakephp-helper


【解决方案1】:

从 2.x 开始,您不再“需要”指定应用程序或核心助手。 这些是自动延迟加载的。

您只需要手动指定插件助手。

也就是说,我个人仍然总是描述我使用的助手,只是为了与插件保持一致。

【讨论】:

  • 好的,所以文档不是最新的? “在 CakePHP 中,通过让控制器知道帮助器来启用帮助器。每个控制器都有一个 $helpers 属性,该属性列出要在视图中可用的帮助器。要在视图中启用帮助器,请将帮助器的名称添加到控制器的$helpers array:" 似乎文档在这个问题上不是很清楚。
  • 不,它们是正确的。正如我所提到的,仍然包含它们是一种很好的做法(即使没有它也可以工作)。示例:如果您将一个助手移动到插件中,那么您需要找到所有可能需要它们的控制器并将其添加到其他位置,否则您只需搜索出现的位置并附加插件前缀。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 2014-08-08
  • 1970-01-01
  • 2012-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多