2012-12-07 83 views
0

我有我的配置/路由的路由文件,如下所示:笨分页和URI路由

$route['thing/(:num)'] = 'site/pages/$1'; 

在我分页的配置是在site/pages,还有以下相关选项:

$config["base_url"] = base_url() . "thing"; 
$config["uri_segment"] = 3; 

上面生成正确的链接,如:thing/20,thing/40(因为我已经给出了每页20个配置选项)并且第一页正确显示20个链接。

但是当我点击第二页链接时,它会返回404。当我继续在浏览器中将网址编辑到/ site/pages/20或site/pages/40时,它可以正常工作。

我在这里做错了什么?

+0

你能显示你的实际代码吗?或者,你真的使用'thing'作为URL段吗?我不明白为什么这些链接会将“base/url”设置为“thing”,为什么会这么说......我很确定它会生成诸如“thing/20”之类的链接。 –

+0

谢谢你指出韦斯利,实际上我忘记了在发帖时用东西/ 20和东西/ 40替换page/20,page/40。我将相应地编辑帖子。 –

回答

2

实际上,你想读的路由URI段(实际上位于URL中的段)。因为你的路由配置的,这将是第二分段:

$config["uri_segment"] = 2; 

docs

的分页功能自动确定你的URI的分段包含页码。如果你需要不同的东西,你可以指定它。

的分页类通过猜测controller/method/param其中“参数”是方法的第一个/唯一的参数假定3(缺省值)。

但是,您的路由在第二个分段中具有页码,因此只需将其设置为2即可。

+0

就像沃尔特的答案一样,没有奏效。所有的页面链接只加载前20行。 –

+0

好的,我们来看看其余的控制器代码,以及如何从数据库中获取数据。这听起来像你没有正确使用页码/偏移量。这确实解决了“404”问题吗? –

+0

是的,404问题已修复。分页链接总是加载第一页。 –

0

尝试使用

$config["base_url"] = base_url("thing/"); 

$config["uri_segment"] = 2; 

记得 URI段refered到URI

+0

没有工作。尽管如此,页面链接全部加载了前20个结果。 –

0

如果你正在寻找任何参考如何做分页,并在同一时间与每个页面链接良好的路由请看这Pagination reference回答给我的一个问题。我希望它能清除你所有的疑惑。