【问题标题】:Codeigniter Changing routes makes $this->uri->segment() not workingCodeigniter 更改路由使 $this->uri->segment() 不起作用
【发布时间】:2016-07-07 08:37:26
【问题描述】:

我已经修改了 routes.php

$route['category']='Home/category';

用于使 url 看起来像 www.website.com/category 而不是 www.website.com/Home/category。因为 Home 是我的默认控制器。 但如果我在类别函数中使用$this->uri->segment();,则它不起作用。这是我的控制器

class Home extends CI_Controller {

  public function category()
  {
     $value=$this->uri->segmet(3);
  }
}

我的网址是www.website.com/category/books 如果我不改变路线,我会得到结果。但是通过改变路线,我需要这个工作。请帮我。谢谢

【问题讨论】:

  • 它的 uri->segment() 。我在这里打错了。请帮忙

标签: codeigniter controller routes uri segment


【解决方案1】:

我的 URL 库处于自动加载状态。反正我解决了。我刚刚像这样配置了我的路线 $route['category/(:any)']='Home/category/$1'

【讨论】:

    【解决方案2】:

    首先你需要加载 URL 库,如果你的 URL 是:

    www.website.com/category/books
    

    你想从 URL 中获取books,而不是段应该是:

    $value=$this->uri->segment(2); //books
    

    【讨论】:

      【解决方案3】:

      您好,请检查您代码中的段拼写

      class Home extends CI_Controller {
      
        public function category()
        {
           $value=$this->uri->segmet(3); //wrong 
           $value=$this->uri->segment(3); 
        }
      }
      

      【讨论】:

        【解决方案4】:

        您可以通过以下方式调试您所拥有的:

        var_dump($this->uri->segment_array());
        

        这将在 URI 中为您提供array of all segments

        你也可以尝试用这个方法调试:

        var_dump($this->uri->rsegment_array());
        

        这将在 URI 中为您提供array of all routed segments

        您可以分别使用$this->uri->segment()$this->uri->rsegment() 任何您认为更适合您的应用程序的名称。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-18
          • 1970-01-01
          • 1970-01-01
          • 2015-05-23
          • 2013-02-28
          • 1970-01-01
          相关资源
          最近更新 更多