我想通过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";

答案 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){