Codeigniter更改路线会使$ this-> uri-> segment()无效

时间:2016-03-20 23:17:21

标签: codeigniter controller routes uri segment

我改变了routes.php

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

使网址看起来像www.website.com/Hategory 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 如果我不改变路线,我会得到结果。但通过改变路线,我需要这个工作。请帮我。感谢

4 个答案:

答案 0 :(得分:1)

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

class Home extends CI_Controller {

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

答案 1 :(得分:0)

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

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()找到更适合您应用的内容。

答案 2 :(得分:0)

首先,你需要加载URL库,而不是你的URL是:

www.website.com/category/books

并且您希望从网址获取books而不是网段:

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

答案 3 :(得分:0)

我的网址库处于自动加载状态。无论如何我解决了它。我刚配置了这样的路线 big.mark