如何使用codeigniter中的参数为url创建分页?

时间:2015-04-21 18:35:11

标签: php codeigniter pagination

我们有一个应用程序,其页面的结果基于某些参数,例如domain.com/index.php/welcome/student/male此处welcome是控制器student方法名称male是参数,现在我们想要分页,但问题是一个人也可以使用像domain.com/index.php/welcome/student/male/steven这样的子类别,其中steven是另一个参数,如何为这种类型的网址创建分页。提前谢谢你:)

2 个答案:

答案 0 :(得分:2)

使用可选参数和分页时的一些问题:

  1. 基于分页的URL中的分页偏移位置的更改 提供的参数数量。
  2. 如果未设置可选参数, 分页偏移将作为参数。
  3. 方法1:
    使用查询字符串进行分页:

    $_REQUEST["product"]

    方法2:
    假设function student($gender, $category = NULL) { $this->load->library('pagination'); $config['page_query_string'] = TRUE; $config['query_string_segment'] = 'offset'; $config['base_url'] = base_url().'test/student/'.$gender; // add the category if it's set if (!is_null($category)) $config['base_url'] = $config['base_url'].'/'.$category; // make segment based URL ready to add query strings // pagination library does not care if a ? is available $config['base_url'] = $config['base_url'].'/?'; $config['total_rows'] = 200; $config['per_page'] = 20; $this->pagination->initialize($config); // requested page: $offset = $this->input->get('offset'); //... } 永远不会是一个数字,如果最后一个段是一个数值,那么它是分页偏移而不是函数的参数:

    category

    我更喜欢第一种方法,因为它不会干扰函数参数,并且在抽象级别实现分页支持会更容易。

答案 1 :(得分:0)

我使用codeigniter工作,但我想也许你必须使用config / routes.php。例如:

$route['^(bar1|bar2)/routes/(:any)/(:any)'] = "routes/get_bar/$2/$3";

你可以在控制器中写一个函数(在这种情况下是路由),如下所示:

public function get_bar($bar1 = null, $bar2 = null)

我希望这对你有所帮助 此致!