2012-01-05 48 views
1

我希望有一個名爲「index」的頁面,其對應的url爲「domain/controller/index」,另一個名爲「admin_index」的頁面爲相應的url「域/管理/控制器/索引」。 訣竅是,我希望這兩個頁面使用相同的視圖呈現和邏輯的相同的功能,而頁面的參數是一個標誌指示視圖從哪個網址呈現視圖。CakePHP:如何使用相同的控制器函數來呈現2頁

我需要它,因爲目前在我的「索引」頁面我有表與數據。 該頁面還具有該頁面的智能過濾器,它需要控制器端的相當數量的邏輯。 我的問題是,目前每行都有一個「編輯」按鈕,我不想分享給所有用戶。

目前,我正在使用管理員前綴來處理這種類型的頁面,通過限制從Web服務器(在我的情況下是Apache)的訪問來保護它們。

如何在不重複控制器功能的情況下實現這一點的任何想法?

回答

1

試試這個(我測試過它在我的CakePHP 2.0.x版本的應用程序,但沒有什麼在此代碼應該是2.0專用):

//controller 
public function index($admin = false) { 
    $this->set(compact('admin')); 
} 
public function admin_index() { 
    $this->index(true); //calls the index function to do all that stuff 
    $this->render('index'); //tells it to render the 'index' view 
} 

當你點擊/index頁面,都應該是像平常一樣。當您點擊admin_index時,它將運行index函數中的邏輯,然後指定使用index視圖。

相關問題