賈森,你自己只是因爲你鬆散地跟蹤了哪些區塊是控制器/方法的一部分,以及哪些是你認爲相關的區段。
我會首先告訴大家堅持一個方法說給其追加到結束(這是從URI,而不是你的路由配置用戶的角度來看):
/view/page/1233/name/blue-skies/pg/20
上面的格式會在後端表示如下: /view/
是控制器,page
是您在控制器中的方法,那麼您將使用$this->uri->uri_to_assoc(4)
(第4個元素,名稱即可啓動)。
這樣你就可以正確地捕捉到你的頁碼1233
,然後把所有相關的數據給它。
作爲一個建議,我會提醒注意不要使用不可讀的變量,這會導致混淆,並且不會使您的網站網址搜索引擎友好(誰知道最終是什麼/ v/p/123/v/l/20? )。
如果您在使用uri路由時遇到問題,請始終使用您的$this->output->profiler(TRUE);
。除非你真的需要,否則不要惹你的路由配置,這可能會導致混淆,這會使你的測試變得複雜。
編輯
我,因爲根據你的問題,你可以把它解釋爲從config.php文件或分頁類的位置的路由問題造成了混亂。我從第一種方法中拿走了它。
爲了說明你需要簡單地堅持一個乾淨的URL方法,如果你使用uri_to_assoc,那很好。但是不要忽略你的分頁頁碼。
您可以通過該頁面數在URI
末的最後一個元素解決這個問題:/view/page/1233/name/blue-skies/user/12/20
凡20
是由分頁產生的頁面數,其他都段你用於任何事情。
您需要將您的$config['uri_segment'] = 6;
在這種情況下,你的$config['base_url'] = '/view/page/1233/'.$this->uri->assoc_to_uri($uri_segments);
其中:
$uri_segments = array(
'name' => 'blue-skies',
'user' => '12');
IF
它是未知的多少段你有(比如動態$ uri_segments數組),使用$this->uri->total_segments()
來計算總分段數,然後你的分頁數就是那個(最後一個)的+1。
我相信你是錯的Jakub;請參考文檔http://codeigniter.com/user_guide/libraries/pagination.html(第一個例子) – jason 2012-01-27 14:43:18
我認爲*您提到了'config.php',它也有'$ config ['base_url']' 。在這種情況下,您使用了分頁特定的配置,我將刪除我的評論。 – Jakub 2012-01-27 14:58:13
如果base_url爲空,那麼頁碼只顯示在URL中沒有別的... – jason 2012-01-27 14:58:46