【问题标题】:CakePHP dynamic element function placementCakePHP 动态元素函数放置
【发布时间】:2010-01-07 04:13:08
【问题描述】:

本网站使用 CakePHP 1.2* 构建

我有一个元素需要放置在多个控制器下的多个视图中。这个元素非常动态,每次加载页面时都需要调用一个函数(相当大),然后显示返回的内容。

我想到了几个选项,但我确定没有一个是正确的方法。

  • 将此函数放在 app_controller 中,然后以某种方式从元素中调用它
  • 创建一个帮助器,然后将其包含在将显示该元素的每个控制器中。
  • 创建一个组件,然后将其包含在每个将显示该元素的控制器中。

如果能以正确的方式提供帮助,我们将不胜感激。目前该元素被放置在多个控制器下的多个页面上,并使用$this->requestAction() 调用该函数,据我了解这肯定不是正确的方法。

提前致谢!

【问题讨论】:

    标签: php cakephp cakephp-1.2


    【解决方案1】:

    嗯,这是一个棘手的问题,也许您应该提供更多信息。但我会尝试:

    • 如果您的函数是应用逻辑的一部分,则应将其设为组件。
    • 如果此函数是视图的一部分,则应将其设为助手。
    • 如果这个函数必须在你的视图中执行,你也可以试试$this->render();

    这是一个棘手的问题,我希望这可以帮助你,但你应该提供一些额外的信息。

    【讨论】:

    • 非常感谢您的洞察力,对不起,我不确定我该如何更具体,但是因为它显示了函数的结果,它应该是一个助手。谢谢!
    • metro - 您通常在什么时候拆分助手和元素?对我来说,这是我尝试将一个元素分解为不同方法的时候,但我很好奇其他人是如何做到的。您是否曾经向元素传递参数,或者会向您尖叫“帮助者”?最后,你会直接从帮助程序中回显,还是只返回输出,让调用元素回显它?
    • 我不是 cakePHP 大师,但每当我想回收与设计一致的某些格式时,我都会使用元素。这可能是本网站中的上下三角形,用于问题和答案。只要你不吐出太多的 html,这个助手就很酷(想想一个数字助手,这样你就可以用逗号分隔成千上万个)。一个简单的规则:如果它涉及的 html 太多并且您想回收,请使用一个元素。如果没有,帮手很好。我的两分钱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    相关资源
    最近更新 更多