0

Codeigniter を使用してコンテンツ管理システムを作成しようとしています。記事のタイトルのリストを表示するページがあります。ユーザーがいずれかの記事のタイトルをクリックすると、その記事の詳細が別のページに表示されます。

次のコードを使用して、記事のタイトル リストを表示しています。

 <a href="<?php echo base_url(); ?>article/<?php echo $row['article_id']; ?>">
 <?php echo $row['article_title']; ?></a>

ユーザーが上記のリンクをクリックすると、article_id が取得され、次のコントローラーに移動します。

コントローラ:

function index($id){

   $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('article');
        $this->db->where('article_id', $id); 
        $query = $this->db->get();
        return $query->row_array();

    }  

結果を表示すると、ブラウザのアドレスバーにリンクが次のように表示されます-

  localhost/cms/article/1         //<< here localhost/cms/ is my base_url

このWeb サイトによると、良い SEO フレンドリーな URL の例は次のとおりですhttp://www.mysite.com/joomla-seo-tips

localhost/cms/article/my-article-title今私の質問は、リンクの最後に記事のIDを表示する代わりに、私のURLを次のように見せる方法ですか?

これを達成するには、記事 ID の代わりに記事のタイトルを照会する必要がありますか、それを行うためのより良い方法がありますか?

これについてあなたのアイデアを共有してください。

前もって感謝します :)

編集

コンテンツを保存する前に、次のコードを実行して get$article_slugを保存する必要がありますか?

function create_slug($string){
$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
return $slug;
}

$article_slug= create_slug('My Name ');   // as you suggested I will create a new column for this
4

2 に答える 2