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

问题描述 投票:-1回答:1

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

codeigniter url routes
1个回答
0
投票

我认为不可能点击一个网址然后更改它但你可以做的一件事是在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);
  }
© www.soinside.com 2019 - 2024. All rights reserved.