所以我接手了一个我的朋友已经开始但没有时间完成的项目。这是一个使用CodeIgniter构建的在线电子商务系统。问题是,每个产品的网址都设置为site.com/store/viewProduct?id=3
,ID为标识符。现在我可以将ID保留在URL中,但我想这样做,以便删除?
并同时添加产品标题。所以最终的网址就像site.com/store/viewProduct/3/cake-cutter
或类似的东西。
控制器也对$_GET['id'];
的所有引用起作用。我知道我也必须改变它......但是为了什么?
我尝试将网址更改为如上所示,然后使用$this->uri->segment(1,0);
获取产品ID,但我收到了错误。
我将使用url_title();
函数内置的CodeIgniters生成产品名称,但更改这些网址的最简单方法是什么?
答案 0 :(得分:3)
最好的办法就是改变控制器获取ID的方式。我假设你不需要第4个URI段,这只是为了SEO /可用性目的......但即使你这样做,你仍然可以通过设置这个功能的方式得到它。
class Store extends CI_Controller {
//site.com/store/viewProduct/3/cake-cutter
public function viewProduct($id, $name)
{
//do stuff and now you have access to $id and $name
//$id == 3
//$name == 'cake-cutter'
}
}