【问题标题】:Codeigniter Pagination and URI RoutingCodeigniter 分页和 URI 路由
【发布时间】:2012-11-26 02:27:09
【问题描述】:

我的 config/routes 文件中有一条路线,如下所示:

$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。当我继续在浏览器中将 url 编辑为 /site/pages/20 或 site/pages/40 时,它可以工作。

我在这里做错了什么?

【问题讨论】:

  • 你能显示你的实际代码吗?或者,您真的使用thing 作为 URL 段吗?如果您将基本网址设置为“事物”,我不明白为什么链接会显示page/X...我很确定它会产生像thing/20 这样的链接。
  • 感谢您指出 Wesley,实际上我在发帖时忘记将 page/20、page/40 替换为 thing/20 和 thing/40。我会相应地编辑帖子。

标签: php codeigniter routing pagination


【解决方案1】:

如果您正在寻找有关如何进行分页的任何参考,同时通过良好的路由到每个页面链接,请查看我为其中一个问题提供的 Pagination reference 答案。我希望它能消除你所有的疑虑。

【讨论】:

    【解决方案2】:

    尝试使用

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

    请记住 uri段被引用的uri

    【讨论】:

    • 没用。尽管如此,页面链接都会加载前 20 个结果。
    【解决方案3】:

    您实际上想要读取路由的 URI 段(实际位于 URL 中的段)。由于您的路由配置,它将是第二段:

    $config["uri_segment"] = 2;
    

    来自docs

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

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

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

    【讨论】:

    • 就像沃尔特的回答一样,没有用。所有页面链接仅加载前 20 行。
    • 嗯,好的,然后让我们看看你的控制器代码的其余部分,以及你是如何从数据库中获取数据的。听起来您没有正确使用页码/偏移量。这确实解决了“404”问题,对吗?
    • 是的,404 问题已修复。分页链接总是加载第一页。
    • 我的控制器方法是这样的: $config = array(); $config["base_url"] = base_url() 。 “事物”; $config["total_rows"] = $this->things_model->record_count(); $config["per_page"] = 20; $config["uri_segment"] = 2; $this->分页->初始化($config); $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0; $data['teams'] = $this->things_model->get_things($config['per_page'], $page); $data["links"] = $this->pagination->create_links(); //用数据加载视图
    【解决方案4】:

    查看 codeigniter 用户指南http://ellislab.com/codeigniter/user-guide/libraries/pagination.html中给出的优秀示例

    【讨论】:

      猜你喜欢
      • 2016-01-03
      • 1970-01-01
      • 2013-06-19
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      相关资源
      最近更新 更多