笨网址:如何在URL中显示的ID和文章标题(Codeigniter URL: How to disp

2019-07-29 11:14发布

请看下面的链接结构

http://stackoverflow.com/questions/10672712/voting-system-like-stackoverflow

在上面的链接10672712是问题的id我想,因为如果你查看以下链接你会得到与上面相同的位置:

 http://stackoverflow.com/questions/10672712

现在,如果你使用上面的链接,那么你会发现,在这个问题ID后,浏览器的地址栏中的链接会自动添加问题的标题(如蛞蝓),它看起来就像上面的第一个环节。

我试图创建一个使用笨的文章为基础的网站。 要显示一个特定的文章中,我有一个控制器,它看起来像以下:

function articles(){


    $id=$this->uri->segment(3);

    $this->load->model('mod_articles');
    $data['records']=$this->mod_articles->list_articles($id);
    $this->load->view('view_article',$data);
     }

我的模型:

  function list_articles($id)

       $this->db->select('*');
        $this->db->from('cx_article');
        $this->db->join('cx_author', 'cx_author.author_id = cx_article.author_id');
        $this->db->where('article_id', $id); 
        $query = $this->db->get();

       if ($query->num_rows() > 0)
        { return $query->row_array();
        }
        else {return NULL;}

    }  

如果你打这个- > localhost/my_base_url/my_controller/my_funtion/article_id然后我的文章出现。 现在我想实现是,如果有人打localhost/my_base_url/my_controller/my_funtion/article_id我想中的article_id之后自动添加文章标题为塞。(就像例如我上面已经给)

你能告诉我该怎么做?

谢谢:)

PS在我的数据库表我有一个名为列article_slug ,我在其中存储我的文章标题为蛞蝓(例如:投票系统样计算器)。

Answer 1:

控制器/ my_controller.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class My_controller extends CI_Controller {

    function my_function($int_id = NULL, $str_slug = '') {

        $row = $this->db->get_where('cx_article', array('article_id' => $int_id))->row();

        if ($row and ! $str_slug) {

            $this->load->helper('url');

            $str_slug = url_title($row->title, 'dash', TRUE);
            redirect("my_controller/my_function/{$int_id}/{$str_slug}");

        }

        // Run the rest of the code here

    }

}

有没有点在你的数据库,因为你不认同基础上的塞任何东西塞列,也不是唯一的。



文章来源: Codeigniter URL: How to display id and article title in the URL