【问题标题】:How to maintain url in codeigniter for pages,categories,subcategories and product?如何在 codeigniter 中维护页面、类别、子类别和产品的 url?
【发布时间】:2016-03-16 07:23:20
【问题描述】:

我正在尝试如下所示的 URL 格式

对于页面 -

www.example.com/page-name

分类

www.example.com/category-name/sub-category-name

产品

www.example.com/category-name/sub-category-name/product-name

www.example.com/product-name

这可能吗?如果是,则意味着我的控制器和功能应该如何?我应该对 routes.php 进行任何更改吗?

【问题讨论】:

    标签: codeigniter


    【解决方案1】:

    我有你的问题的解决方案:)

    1) 例如,如果您使用确定优先级的 HMVC (https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/)(示例模块:前):

    • page_name(控制器:Page)
    • product_name(控制器:产品)
    • 类别(控制器:类别)

    路线中的下一个:

    $route['(:any)'] = function ($slug)
    {
            return 'front/page/show/'.$slug;
    };
    

    next check in controller 页面检查存在有链接。如果不存在,则运行下一个控制器产品。例如:

    ...
    public function show($slug='')
        {
        $this->load->model('page_m');
        $page = $this->page_m->GetRowBySlug($slug)->row();
            if(!$page) {
                echo modules::run('front/product/show', $slug);
                exit;
            }
    ...
    

    控制器中的下一个产品添加到相同但如果不存在链接运行下一个控制器等:

    ...
    public function show($slug='')
        {
        $this->load->model('product_m');
        $page = $this->product_m->GetRowBySlug($slug)->row();
            if(!$page) {
                echo modules::run('front/categories/show', $slug);
                exit;
            }
    ...
    

    2) 如果不使用HMVC,你可以运行其他控制器:

    ...
    $this->load->library('../controllers/product');
    $this->product->show($slug)
    ...
    

    而且你必须改变路线:

    $route['(:any)'] = "page/show/$1";
    

    对不起我的英语,但我试过了......

    【讨论】:

      【解决方案2】:

      对于页面:
      使您的控制器名称与您的页面名称相同。

      分类:
      使控制器的名称与您的类别名称相同。 子类别是类别控制器中的方法。 产品名称是您通过锚点在 url 上传递的产品的标识。

      我想这应该可以完成这项工作。

      【讨论】:

        猜你喜欢
        • 2013-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多