2012-08-07 53 views
1

所以這當前爲我加載頁面。uri_to_assoc(n)在路由後不起作用

/controllername /視圖/ ID/27 /標題/鞋

不過,我希望用戶能夠輸入:

/controllername/27 /鞋

查看文件。所以在路由文件中,我制定了這樣一個規則,

$ route ['controllername /(:num)/(:any)'] =「控制器名稱/視圖/標識/ $ 1 /標題/ $ 2」;

原來的地址與uri_to_assoc(N)的作品,因爲我把它作爲

$array = $this->uri->uri_to_assoc(3); 
    $id = $array['id']; 
    $title = $array['title']; 

但是,一旦我的路線,並使用新的地址訪問該文件,我得到的錯誤: 消息:未定義指數:id 消息:未定義的索引:標題

我不明白我的原始URL訪問方式。我猜uri_to_assoc(3)的值一旦改變了URL就會改變,但我認爲路由功能會照顧到這一點。任何人都可以幫助我擺脫這些變量錯誤?

回答

1

在這種情況下,你會希望ruri_to_assoc

http://codeigniter.com/user_guide/libraries/uri.html

$this->uri->ruri_to_assoc(n)

此功能是相同的[uri_to_assoc],不同之處在於它使用重新創建 關聯數組如果您使用CodeIgniter的URI路由功能,您是 ,則路由URI。

無論如何,您仍然應該驗證您的數組索引,以防URL本身無效。

+0

謝謝衛斯理,這完全是我的伎倆!你能告訴我什麼是關聯數組,它與路由有什麼關係?我只是想學習CI系統。 – Ramin 2012-08-07 22:26:04

+0

對不起,我不確定你在問我什麼。 URI類的'r *'函數和''''''''''''''''''''''''''''''''''''''routes.php'數組值'關聯數組是從URL的每個段開始形成的,基本上是:First segment - > first key,second segment - > first value,third segment - > second key,fourth segment - > second value。 – 2012-08-07 22:27:49

+0

關聯數組基本上意味着一個以顯式鍵=>值格式,其中鍵是(通常)字符串。所有數組值都有鍵,但它們可能是*隱含的*數字鍵。試試'print_r($ your_array)'來檢查它裏面的內容。 – 2012-08-07 22:42:18