Php 需要有关codeigniter路线的帮助吗

Php 需要有关codeigniter路线的帮助吗,php,codeigniter,symfony,routes,Php,Codeigniter,Symfony,Routes,有没有办法让codeigniter中的路线像symfony中那样工作 因为在那里你可以重命名路由路径,它仍然不会影响你的输出,因为你所说的是路由名称而不是路由路径,这与codeigniter中的不同 例如,在symfony中,路由设置如下: news_index: path: /news defaults: { _controller: CmsBundle:News:index } news_view: path: /news/view/{id}

有没有办法让codeigniter中的路线像symfony中那样工作

因为在那里你可以重命名路由路径,它仍然不会影响你的输出,因为你所说的是路由名称而不是路由路径,这与codeigniter中的不同

例如,在symfony中,路由设置如下:

news_index:
    path:      /news
    defaults:  { _controller: CmsBundle:News:index }

news_view:
    path:      /news/view/{id}
    defaults:  { _controller: CmsBundle:News:view }
$route['news'] = 'NewsController';
$route['news/view/(:num)'] = 'NewsController/view/$1';
然后我可以在模板中通过调用路由名称来访问它,而不是调用路由路径

<?php 
    // outputs: /news
    echo $view['router']->generate('news_index');

    // outputs: /news/view/1
    echo $view['router']->generate('news_view',array('id' => $news_id)); 
?>
代码仍然相同,但输出已更改

<?php 

    // outputs: /articles
    echo $view['router']->generate('news_index');

    // outputs: /articles/item/1
    echo $view['router']->generate('news_view',array('id' => $news_id)); 
?>
我知道的唯一方法是通过路径调用它:

<?php
    echo anchor('news');
    echo anchor('news/view'.$news_id);
?>


如果我改变我的道路,我也必须改变我在视图中写的东西。那会很麻烦。所以我想知道是否有办法让它像symfony一样工作。如果有人能帮助我,我将不胜感激。如果我的解释不清楚,我道歉。英语不是我的母语:)

kennyk
有一篇博客文章描述了他使用路由器扩展实现类似symfony的命名路由的方法

这篇文章叫做

我想这就是你要找的

<?php
    echo anchor('news');
    echo anchor('news/view'.$news_id);
?>