CakePHP多个控制器使用相同的方法

时间:2014-03-15 14:06:54

标签: cakephp view controller

我有一个方法(控制器中的功能,我正确地说它是正确的吗?)并查看我想在我的网站上的每个控制器中使用。有没有办法让方法在所有控制器上都是全局的,并且视图.ctp文件也是通用的?我宁愿不必将它复制粘贴到任何地方。

这似乎应该是显而易见的,所以如果我只是在搜索错误的字词,请告诉我。

由于

2 个答案:

答案 0 :(得分:2)

共享/公共控制器代码:

您所描述的是"组件":

  

组件是控制器之间共享的逻辑包。   如果你发现自己想要复制和粘贴东西   控制器,你可能会考虑包装一些功能   成分

请参阅:http://book.cakephp.org/2.0/en/controllers/components.html


共享/公共查看代码:

就View而言,有几个选择。如果您想要整个视图,则只需指定要呈现的视图:$this->render('TestView/index');

或者,如果您想要一小块代码,可以尝试Element


一起:

如果你发现自己创造了许多不同的"部分" (视图,控制器/组件,模型/行为)...等,所有这些都是出于相同的一般目的(即裁剪照片),您可以考虑创建Plugin


旁注:

旁注:通常,我已经听到控制器中的功能被称为" actions"以及模型中的功能称为"方法"。它们都是真正的方法(类/对象中的一个函数),但是 - 这是他们通常所指的方式。

答案 1 :(得分:1)

您可以将方法放在AppController中,只制作一个视图。

您将使用$this->render('/myview.ctp');