贾森,你自己只是因为你松散地跟踪了哪些区块是控制器/方法的一部分,以及哪些是你认为相关的区段。
我会首先告诉大家坚持一个方法说给其追加到结束(这是从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