【发布时间】:2016-09-20 16:38:18
【问题描述】:
我想要做的是当我点击我的特定产品时,我想输入产品的名称,而不是我的产品的 id 会出现在我的 url 中。 我今天做的是base_url/controller/method/id
我想做的是 base_url/controller/method/product-name 或 base_url/controller/method/product_name
但是在我的代码中发生的事情是在我的产品名称中,所有空格都被 %20 占据了我应该怎么做才能用下划线或破折号或任何安全的方式在 url 中调用产品名称来替换 %20。
无论我在那个 $name(product_name) 上得到什么,我都会把它传递给我的模型。
我的控制器
public function details($name){
$prod_row = $this->PromoModel->getpromorow($name);
$data['promodetail'] = $prod_row;
$data['promo'] = $this->PromoModel->get_promo();
$data['message']= "<h1> NO PROMOS AVAILABLE</h1>";
$this->load->view('include/header',$data);
$this->load->view('include/nav');
$this->load->view('promo/PromoDetail', $data);
$this->load->view('include/footer');
}
我的模特
public function getpromorow($name) {
$this->db->where('name', $name);
$query = $this->db->get('promo');
return $query->row();
}
public function get_promo(){
$query = $this->db->get('promo');
return $query->result();
}
我的看法
<a href="<?= base_url(). 'promos/details/' . $promo_row->name ?>"> </a>
【问题讨论】:
-
str_replace(' ', '_', $promo_row->name)或str_replace(' ', '-', $promo_row->name),在将其放入 url 之前执行此操作。 -
@ArtisticPhoenix 为您提供最佳创意,您也可以在此处使用
urlencode()。
标签: php codeigniter uri