我只是在学习codeigniter,而且我似乎遇到了一些有点奇怪的事情。我正在使用URI路由功能,但需要获取重新路由的URI的URI段。

这是其中一条路线:

$route['content'] = "site/display/main template/content";

当访问 http://lipsum.localhost/content 时,它会加载控制器,但它不会让我使用URI类:

class Site extends Controller {

    function display($template, $page) {

        echo "display<br>";

        $this->load->library('uri');
        echo $this->uri->rsegment(1, 0)."<br>";
        echo $this->uri->rsegment(2, 0)."<br>";
        echo $this->uri->rsegment(3, 0)."<br>";
        echo $this->uri->rsegment(4, 0)."<br>";

    }

}

当我访问该页面时,它只显示

display
0
0
0
0

基本上这段代码应该加载一个模板,然后将 $ page 传递给它,这样它就可以加载一个网站的一部分。所以'content'可能会使用'main template'作为模板,然后将'content'作为要加载的页面传递给它。但我也希望能够将'/ products / whatever'传递给它等等 - 所以我想循环遍历URI段以获得完整的“路径”。到页面。我怎样才能使它工作?而且,为什么我没有工作?

有帮助吗?

解决方案

尝试删除“主模板”中的空格,使用下划线或camelCase一起使用“mainTemplate”。我不记得上次我在任何路线或网址上看到过的空间。

其他提示

这样做可以将自定义路由添加到/app/config/routes.php文件中。

$route['title-of-the-page'] = "<controller>/<method>";
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top