【问题标题】:How to apply codeigniter's URL_TITLE value to the URL如何将 codeigniter 的 URL_TITLE 值应用于 URL
【发布时间】:2013-03-01 03:55:28
【问题描述】:

我对 ci 完全陌生,

我有一个类似这样的网址:

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

我希望它是:

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

到目前为止,我能够设法将所有这些路由到 home/post/ 并且还学习了 segment 函数。

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

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

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

【问题讨论】:

    标签: php codeigniter url-routing


    【解决方案1】:

    为您的每个产品生成一个独特的 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";
    

    【讨论】:

      【解决方案2】:

      你需要这样做:

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

      【讨论】:

        猜你喜欢
        • 2011-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-09
        • 1970-01-01
        • 1970-01-01
        • 2014-12-08
        • 1970-01-01
        相关资源
        最近更新 更多