使用分页时的 Codeigniter url 重写问题
Posted
技术标签:
【中文标题】使用分页时的 Codeigniter url 重写问题【英文标题】:Codeigniter url rewrite issue when using pagination 【发布时间】:2014-01-10 02:59:00 【问题描述】:这些天我正在学习 codeigniter。几天前我做了一个自己使用的网站,今天我刚刚应用了分页,但我的 url 重写似乎有问题。
这是我在控制器中的操作,它获取类别中的作者列表
`公共函数索引() $data['main_content'] = "templates/public/audio/author_view"; $data['authors'] = $this->author_model->get_authors(); $this->load->view("templates/public/template",$data); `这是我的函数,它从位于我的作者模型中的 db 中获取值 `公共函数get_authors($type = 0) $this->db->select("author.name,author.image,author.slug"); $this->db->from("作者"); $this->db->join("专辑","author.id = album.author_id"); $this->db->where("album.mime_type",$type); $this->db->group_by("author.name"); $query = $this->db->get(); 返回$查询->结果(); `
当我点击其中一位作者时,它会打开所选作者的所有专辑。然后 url 看起来链接 www.xyz.com/audio/album-name这是我这条路线的代码。
$route['audio/(:any)'] = "audio/view_author_album";
在这个阶段它工作正常。但是今天当我应用分页时,我发现这条路线不会为我做更多的工作。我在索引操作中添加了分页下面你可以看到我的代码
公共函数索引() $config['base_url'] = "http://localhost/mywebsite/audio/index/"; $config['total_rows'] = $this->author_model->get_total_rows(); $config['per_page'] = 1; $this->分页->初始化($config); $data['main_content'] = "templates/public/audio/author_view"; $data['authors'] = $this->author_model->get_authors($config['per_page'], $this->uri->segment(3)); $this->load->view("templates/public/template",$data);这会打开详情 http://localhost/mysite/audio/index/2 针对这个 url 我的路由规则 $route['audio/(:any)/(:any)'] = "audio/view_album_details";有效。 它应该抓取下一页而不是我的详细视图。 url 应该类似于 http://localhost/mysite/audio/2 我也试过 $route['audio/(:num)'] = "audio/; 如果有人可以帮助我解决这个问题,我将非常合适。
【问题讨论】:
【参考方案1】:我遇到了同样的问题,我通过使用两个相同的路由器来解决它
$route['a-b-c/([a-z0-9-]+)/([0-9]*)'] = "产品/类别/$1"; $route['a-b-c/([a-z0-9-]+)'] = "产品/类别/";
【讨论】:
您能解释一下您的解决方案吗?以上是关于使用分页时的 Codeigniter url 重写问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 distinct 和 row_number 分页时的性能