【问题标题】:Codeigniter routing how to permit null parameterCodeigniter路由如何允许空参数
【发布时间】:2013-01-22 09:09:37
【问题描述】:

我想分页我的索引 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中的参数

【问题讨论】:

    标签: codeigniter-routing


    【解决方案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)

    例如

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

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 2019-01-12
      • 2014-12-21
      • 2019-01-14
      • 2018-10-04
      • 1970-01-01
      • 2015-01-07
      相关资源
      最近更新 更多