2010-01-07 88 views
2

本网站使用CakePHP 1.2 *CakePHP动态元素功能放置

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

有几个选项,我已经想到了,我确信其中没有一个是这样做的正确方法。

  • 配售app_controller内该功能并然后以某种方式从元件
  • 调用它创建一个帮助,然后它包括在每个控制器将显示元素。
  • 创建一个组件,然后将其包含在每个将显示该元素的控制器中。

任何帮助,以正确的方式赞赏这样做。目前,该元素被放置在多个控制器下的多个页面上,并使用$this->requestAction()调用该函数,这从我所了解的当然不是正确的方式。

在此先感谢!

回答

2

嗯,这是一个棘手的问题,也许你应该多给点信息。但我会尝试:

  • 如果你的函数是你的应用逻辑的一部分,你应该把它作为一个组件。
  • 如果这个函数是视图的一部分,你应该让它成为一个帮手。
  • 如果该功能必须在视图下执行,你也可以尝试$this->render();

这是一个棘手的问题,我希望能帮助你,但你应该给一点额外的信息。

+1

非常感谢您的洞察力,对不起,我不确定我可以如何更具体,但因为它显示函数的结果,它应该是一个帮手。谢谢! – user103219 2010-01-07 05:14:00

+0

地铁 - 你通常在什么时候分出帮助和元素?对我而言,当我尝试将元素分解成不同的方法时,但我很好奇其他人如何去做。你曾经向某个元素传递过论据,还是会向你尖叫“帮手”?最后,你会直接从助手回显,还是只返回输出,让调用元素回应它? – 2010-01-07 16:39:54

+1

我不是cakePHP大师,但是我每次想要回收与设计一致的特定格式时都会使用元素。这可能是本网站上下三角形,用于问题和答案。只要你不吐出太多的html(帮助者可以用逗号分隔数千和数百)来帮助你很酷。 一个简单的规则:如果它涉及太多的HTML并且您想要回收,请使用元素。如果不是的话,帮手是好的。我的两分钱。 – metrobalderas 2010-01-07 17:38:09