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号的主要内容,如果未能解决你的问题,请参考以下文章
如果未提供 URL 中的参数,则 codeigniter 显示警告错误
如何使用 onGenerateRoute 在 URL 中显示 Flutter Web 路由名称?
如何删除 url codeigniter 路由 htaccess 中的某些部分