如何在所有控制器中使用控制器的操作

时间:2013-10-25 13:39:16

标签: php view yii widget action

我有一个动作,让search视图作为此网站上面的搜索栏进行搜索,因此应该在每个视图中显示。

我不知道这样做的机制是什么。例如,如果我将搜索操作设置为小部件,这将不会很好,因为搜索结果将显示在搜索小部件的相同位置(位于网站顶部)。

那么,我如何制作应该在网站的每个视图中显示的搜索操作?

2 个答案:

答案 0 :(得分:1)

为了在任何地方恢复相同的搜索功能,您需要创建一个小部件。 我已在How a widget works中简要解释过,然后您可以将其附加到您想要的每个视图中。

如果您不想开始,请查看:Yii ESearch

以下是一些有用的参考资料:

how-to-use-a-widget-as-an-action-provider

actions-code-reuse-with-caction/

Yii Widget

答案 1 :(得分:1)

如果要在每个视图中添加内容,则应将其添加到布局中。根据它的声音,您根本不需要使用小部件,尽管它可能有助于代码可维护性。

您从未提及对ajax的要求,因此请保持简单并且不要使用它。当有人输入搜索并单击提交(或按回车)时,表单将提交给SearchController。这样就不需要在每个控制器中进行搜索操作。

如果您特别希望在每个控制器中执行相同的操作,则在其中创建一个包含该功能的Controller基类,并从中继承以创建所有其他控制器。