如何将codeigniter URL TITLE值应用于URL

时间:2013-03-01 03:55:28

标签: php codeigniter url-routing

我对ci完全不熟悉,

我有一个这样的网址:

http://localhost/mvc/post/prod_id/1

我希望它是:

http://localhost/mvc/post/my-best-product

到目前为止,我能够设法将所有内容路由到home/post/并学习segment功能。

但我的问题是如何真正将url_title输出到实际网址。

我找不到关于这个特定主题的任何信息。我所能找到的是如何使用url_title以及如何在ci中路由。但他们没有解释我们如何才能真正改变基本网址名称。

请引导我走向正确的方向。

解决方案示例:

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();
    }
}

这不是我要做的。只有其他人才能理解Slugs的解决方法。

2 个答案:

答案 0 :(得分:4)

为每个产品生成一个独特的slug。在产品表上添加一个字段,每次从表中选择产品时,使用该slug而不是从主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";

答案 1 :(得分:1)

你需要这样做:

  1. 设置一些将“my-best-product”翻译为“1”
  2. 的逻辑
  3. 在CI中设置路由,调用“prod_id”控制器并传递URI变量