2013-02-08 74 views
0

我有一個麻煩提出這個概念。我的應用程序存儲在http://localhost(杜),我有一個管理面板,可以通過訪問http://localhost/admin訪問。我有管理面板菜單,其中一個菜單是管理頁面,訪問http://localhost/admin/manage_pages。 「管理頁面」頁面會顯示來自數據庫的結果,其中包含標題,說明和ID。現在,我的問題是,如果我想編輯可以說第三行的標題,我該怎麼做?它會是http://localhost/admin/manage_pages/3?但是,對於那種情況下,我將不得不在控制器中創建一個功能?我很困惑。CodeIgniter管理數據庫記錄

+2

有幾種方法去這個問題,但我認爲,如果你學習CodeIgniter的路由,會更有意義。從根本上說,你的控制器是admin,函數是manage_pages,以及可以使用URI類獲得的url中的任何其他數據(如3)。所以不,你不需要每個頁面的新功能。 – Jerry 2013-02-08 19:10:44

+0

這是有道理的,因爲可以檢索/發送/檢索manage_pages後的任何內容,並將其與行的id值進行比較。感謝提示! – Grigor 2013-02-08 19:13:29

+0

如果您有任何編輯按鈕,您也可以採取其他方式。當你點擊編輯按鈕時調用一個javascript函數。在該函數中,從顏色框中加載一個colorbox只需編寫一個簡單的控制器函數。在那裏傳遞id並使用該id從數據庫中檢索有關該頁面的詳細信息,並在可編輯文本框的colorbox中顯示它。在用戶使用ID再次提交時,在數據庫中編輯完成更新後即爲一次。 – 2013-02-08 19:53:19

回答

1

如果您喜歡URI格式化的方式:localhost/admin/manage_pages/3,那麼缺少的東西就是接受控制器函數的變量。在這種情況下,我更喜歡設置一個默認值,如果沒有傳遞,並且使用if語句,您將有一個方法來加載指定頁面,或者在沒有任何內容傳遞時加載所有頁面。

控制器管理:

public function manage_pages($page_id='') 
{ 
    if ($page_id == '') 
    { LOAD ALL RESULTS } 
    else 
    { LOAD 1 RESULT } 
}