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

时间:2018-01-01 20:45:18

标签: codeigniter url routes

我在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);

1 个答案:

答案 0 :(得分:0)

我认为不可能点击一个网址然后更改它但是你能做的一件事就是在网址上传递项目名称然后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);
  }