Codeigniter路由:如何在url中显示名称而不是id号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeigniter路由:如何在url中显示名称而不是id号相关的知识,希望对你有一定的参考价值。

我在codeigniter中需要一些url的帮助..

当我点击特定项目的详细信息时,网址就像这样...... http://localhost/testproject/index.php/Item/details/2

有可能这样显示吗? http://localhost/testproject/index.php/Item/samsung-galaxy-s7

结果来自数据库。说我的数据库看起来像这样......



item_id       Item_name
------------------------

1             Nokia Lumia 5

2             samsung galaxy s7

我的控制器“项目”,功能“详细信息”

 public function details($item_id=0) 


    $data['itm_details']=$this->Item_model->getDetails($item_id);
    $data['view_page']='item/details_page';
    $this->load->view('homepage', $data);

答案

我认为不可能点击一个网址然后更改它但你可以做的一件事是在URL上传递项目名称然后urldecode给定的字符串。

CONTROLLER

public function details($item_name=NULL){
        $item_name = urldecode($item_name);
        $data['itm_details']=$this->Item_model->getDetails($item_name);
        $data['view_page']='item/details_page';
        $this->load->view('homepage', $data);
}

只是一个例子

  function temp(){
    echo "<a href='".site_url('controller/temp_redirect/this sample_-url')."'>Click Me</a>";
  }

  function temp_redirect($url){
    echo urldecode($url);
  }

以上是关于Codeigniter路由:如何在url中显示名称而不是id号的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter - 如何在 url 路由中删除类名

如果未提供 URL 中的参数,则 codeigniter 显示警告错误

如何使用 onGenerateRoute 在 URL 中显示 Flutter Web 路由名称?

如何删除 url codeigniter 路由 htaccess 中的某些部分

如何从 url 中删除控制器名称,使其在 codeigniter 中变得干净

如何从 CodeIgniter 中的 URL 中删除控制器和函数名称