1

所以我接手了一个我的朋友已经开始但没有时间完成的项目。这是一个使用 CodeIgniter 构建的在线电子商务系统。问题是,每个产品的 url 都设置site.com/store/viewProduct?id=3为 ID 作为标识符。现在我可以将 ID 保留在 URL 中,但我想将其?删除,并同时添加产品标题。所以最终的 URL 会是这样site.com/store/viewProduct/3/cake-cutter或类似的。

控制器功能也都参考了$_GET['id'];。我知道我也必须改变它……但改成什么?

我尝试将 URL 更改为如上所示,然后$this->uri->segment(1,0);用于获取产品 ID,但出现错误。

我将使用 CodeIgniters 内置url_title();函数来生成产品名称,但是更改这些 url 的最简单方法是什么?

4

1 回答 1

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'
    }

}
于 2013-08-15T22:59:51.377 回答