2015-09-10 95 views
0

我一直在研究動態視圖加載器,並遇到一些問題。 儘管當我得到一個「編輯」時它工作正常,但我似乎無法用一種很好的方式修復代碼,一旦我添加了一個。Codeigniter動態視圖加載器

目前viewLoader看起來如下:http://pastebin.com/e9piMJBW

我得到的問題是,在第45行:

$values['data'] = $this->DoQuery($url[(count($url) - 3)], $url[(count($url) - 2)], $url[(count($url) - 1)]); 

我總是希望我的網址是因爲:domain.com/東西/用戶/編輯/ 55。

我的URL的最後3段將定義要做什麼。

用戶=>表

編輯=>功能和

55將是用戶的ID。

我將其用於我的管理面板,因此它會根據URL和$ _POST值自動獲取/插入數據。

我的問題是,一旦我有一個添加此senario將有所不同。該網址看起來如下:

domain.com/something/users/add

我將不再擁有全部3個值(與預期編輯/刪除)

+0

我不知道你爲什麼這樣做。爲什麼你不使用「正常」路由系統?您可以使用更少的代碼來實現相同的目標。 – Webice

+0

這不是一個路由系統,這是一些自動系統,它會檢測加載哪個頁眉,頁面和頁腳。在編輯/刪除的情況下,它會自動執行一些功能,它基本上是 $ this-> load-> view()的一些擴展。 – killstreet

+0

你究竟想要什麼? –

回答

2

你在第45行可能問題解決如下:

function generateUrl(){ 
    $this->load->helper("url"); 
    $url = explode("/", $this->uri->uri_string()); 
    $values = array(); 

    if (count($url) == 5) {// Edit of Delete 
     $values['data'] = $this->DoQuery($url[(count($url) - 3)], $url[(count($url) - 2)], $url[(count($url) - 1)]); 
    } 
    else { //Add 
     $values['data'] = $this->DoQuery($url]count($url)-2)],$url[(count($url) -1)]); 
    } 
    ...... 
+0

我的確已經擁有了這一切,並且工作得很好。我只是有點難過,這看起來像解決問題的唯一方法,因爲我試圖避免if()語句 – killstreet