Codeigniter - 路由多个参数

时间:2017-01-28 09:27:56

标签: php codeigniter routes

我想通过slug显示单个博客新闻,但我不知道

博客控制器:



        public function show_news($slug)
        {
          $page_data['page_title']  = 'News';
          $page_data['news_item'] = $this->blog_model->get_news($slug);

          $this->template->load('frontend/blog_news',$page_data);

        }




博客模型:



	 function get_news($slug)
    {
      $slugs = urldecode($slug);
       $query = $this->db->get_where('blogposts', array('slug' => $slugs));
if($query->num_rows() > 0 ){
	if($this->db->get_Where('blogposts', array('slug'=>$slugs))->row()->status == '1'){
		return $query->row_array();
		   }
		}
    }




我的路线:



$route['blog/(:any)/news/(:any)'] = "blog/show_news/$1/$2";




2 个答案:

答案 0 :(得分:1)

您只有一个参数($slug)和show_news功能,所以显然路线"blog/show_news/$1/$2";不正确。像这样管理您的路线..

$route['blog/news/(:any)'] = "blog/show_news/$1";

它会将每个blog/show_news/slug重定向到blog/news/slug

答案 1 :(得分:0)

在您的控制器中,您只有一个参数。您的路线配置不行。它应该是 $route['blog/news/(:any)'] = "blog/show_news/$1";正如已经说过的那样。

但是,你的问题标题是

  

Codeigniter - 路由 多个参数

如果你想要传递另一个参数,那么,使用当前路径,你可以通过向控制器的方法添加第二个参数来访问$ 2变量。

public function show_news($slug, $secondParameter){