Codeigniter路由如何允许null参数

时间:2013-02-07 00:19:27

标签: codeigniter-routing

我希望paginate我的索引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

中的参数

1 个答案:

答案 0 :(得分:1)

将您的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)代替。

e.g。

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) );

}

希望有所帮助!

相关问题