我对ci完全陌生,
我有一个像这样的url:
http://localhost/mvc/post/prod_id/1
我希望它是:
http://localhost/mvc/post/my-best-product
到目前为止,我能够设法将所有这些路由到home/post/
,并学习了segment
功能。
但我的问题是我如何真正得到url_title
的实际url。
url_title
以及如何在ci中路由。但是他们并没有解释我们如何改变url的基本名称。
请给我指路。
解决方案的例子:
public function my_method($product_slug)
{
$product1 = "training-for-recruitment";
$product2 = "training-for-od";
if($product_slug==$product1)
{
$this->load->view('prod1');
}else if($product_slug==$product2)
{
$this->load->view('prod2');
}else{
show_404();
}
}
这不是我要做的。这只是为了让其他人了解鼻涕虫的工作方法。
为您的每个产品生成唯一的标识符。在产品表中为它添加一个字段,并且每次从表中选择产品时,使用该段符而不是从主id中获取产品。
那么,你的函数就变成了:
function product($product_slug)
{
//get product by slug from database
//load view page
}
现在,在config/routes.php
$route['your_controller_name/(:any)'] = "your_controller_name/product/$1";
您需要这样做:
- 设置一些逻辑,将"my-best-product"转换为"1"
- 在CI中设置路由,调用您的'prod_id'控制器并传递URI变量