2

我对ci完全陌生,

我有一个这样的网址:

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

我希望它是:

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

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

但我的问题是我如何真正获得url_title实际的网址。

我找不到关于这个特定主题的任何信息。我能找到的只是如何使用url_titleci 以及如何在 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();
    }
}

这不是我真正要做的。只是为了让其他人了解 Slugs 的解决方法。

4

2 回答 2

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";
于 2013-03-01T06:25:59.670 回答
1

你需要这样做:

  1. 设置一些将“my-best-product”翻译为“1”的逻辑
  2. 在 CI 中设置路由,调用您的“prod_id”控制器并传递 URI 变量
于 2013-03-01T04:00:52.937 回答