2013-10-25 41 views
0

我有呈現search觀點做搜索在這個網站上面的搜索欄,所以它應該在每一個視圖中顯示的操作。如何使所有的控制器使用控制器的動作

我不知道是什麼做的機制。例如,如果我將搜索操作作爲小部件進行操作,則不會很好,因爲搜索結果將顯示在搜索小部件的相同位置(位於網站頂部)。

那麼,如何才能讓應該在網站的每個視圖中顯示的搜索行動?

回答

1

爲了resue相同的搜索功能無處不在,你需要創建一個小部件。 我已經在How a widget works中簡要解釋過了,那麼你可以將它附加到你想要的每個視圖中。

如果你沒有任何想法開始,檢查了這一點:Yii ESearch

這裏有一些參考,這將是有益的:

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

actions-code-reuse-with-caction/

Yii Widget

+0

如果我使用了小部件,結果將顯示在我使用搜索小部件的位置,這是網站的頂部。 – Mohammad

+1

這種情況必須具有處理靈活性。你可以傳入你的搜索小部件一個選擇器(如id)的html標籤(這樣的div),你想顯示搜索結果,每次搜索按鈕被點擊,它會通過ajax請求,獲取搜索結果並把它們全部進入傳遞的選擇器。 –

+0

我想把結果放在一個叫做結果的頁面中,是否可以發佈它們? – Mohammad

1

如果你想添加一些東西到每一個視圖ñ你應該將其添加到佈局。通過它的聲音,你根本不需要使用小部件,儘管它可能有助於代碼可維護性。

你從來沒有提過阿賈克斯的要求,以便保持它的簡單和不使用它。當有人輸入搜索並點擊提交(或按回車),然後表單提交給SearchController。這樣就不需要在每個控制器中進行搜索操作。

如果你特別想在每個控制器相同的動作,然後創建一個含有該功能的控制器基類,並從它繼承來創建你的所有其他控制器。

相關問題