0

我想分页我的索引 http:localhost/mysite/home 但是如果我只写这个 http:localhost/mysite/home 页面说:“找不到页面”,但是如果我写 http:localhost/mysite/home/3 它的工作!如何配置路由以获取空参数?我尝试使用 (:any) 和 (num) 但不起作用

我的路线文件是:

       $route['404_override'] = 'welcome/no_found';
       $route['home/'] = "welcome/home/$1";

我的控制器:

      $config['base_url'] =  base_url().'/mysite/home';
      $config['total_rows'] = $this->mtestmodel->countNews();
      $config['per_page'] = 2; 
      $config['num_links']   = 20;
      $this->pagination->initialize($config); 
      $data['paginator']=$this->pagination->create_links();
      $data['news']=$this->mtestmodel->show_news( $config['per_page'],intval($to) );

//$to是url中的参数 base_url()/mysite/home/3

4

1 回答 1

3

将您的route.php文件更改为以下内容:

$route['404_override'] = 'welcome/no_found';
$route['home/(:num)']  = "welcome/home/$1";
$route['home']         = "welcome/home";

这样,您的应用程序将捕获两个请求(http://localhost/mysite/homehttp://localhost/mysite/home/3),并将它们都发送到您的控制器。

然后,您应该能够访问您的$to变量(已作为第一个参数传递到控制器的函数中)或$this->uri->segment(2)改为使用。

例如

public function home($to = 0) {
    $config['base_url']    =  base_url().'/mysite/home';
    $config['total_rows']  = $this->mtestmodel->countNews();
    $config['per_page']    = 2; 
    $config['num_links']   = 20;
    $this->pagination->initialize($config); 
    $data['paginator']     = $this->pagination->create_links();
    $data['news']          = $this->mtestmodel->show_news( $config['per_page'],intval($to) );

}

希望有帮助!

于 2013-02-19T11:59:14.313 回答