如何在Codeigniter中动态路由链接?

时间:2019-03-04 20:38:06

标签: codeigniter-3

我正在Blogging网站上工作。创建帖子后,我可以在帖子页面中查看它。但是,我通过使用word_limitter将其限制为60个字,然后有一个链接 Read More (下面的代码),该链接应带我到一个显示该页面所有内容的新页面。帖子。

<?php echo site_url('/posts/'.$post['slug']); ?>

现在,我面临的挑战是动态路由,因为我想要这样一种方式:每当我在任何帖子上单击阅读更多时,它都会打开该特定帖子。 我的控制器功能

public function view($slug = NULL){
    $data['post'] = $this->posts_model->get_posts($slug);
    $post_id = $data['post']['id'];
    $data['comments'] = $this->comments_model->get_comments($post_id);

    if(empty($data['post'])){
        show_404();
    }

    $data['title'] = $data['post']['title'];

    $this->load->view('template/header');
    $this->load->view('posts/readmore', $data);
    $this->load->view('template/footer');
}

我的模特在这里

 public function get_posts($slug=FALSE, $limit= FALSE, $offset =FALSE){
    if($limit){
        $this->db->limit($limit, $offset);
    }
    if($slug === FALSE){
        $this->db->order_by('posts.id', 'DESC');
        $this->db->join('categories', 'categories.id = posts.category_id');
        $query= $this->db->get('posts');
        return $query->result_array();

    }
    $query = $this->db->get_where('posts', array('slug' =>$slug));
    return $query->row_array();

}

这是我的路线的样子

$route['posts/(:any)'] = 'posts/readmore/$1';

当我单击“阅读更多”时,它会给我404。当我删除上面的路线并单击“更多”时,它会显示空白页面。

0 个答案:

没有答案