codeigniter路线问题

时间:2011-06-17 04:33:18

标签: php codeigniter routes

我想要的结果:

greeting/102/steve =>  greeting/index/102/steve
在greeting.php中

function index($order,$name)
{
    echo "order: $order , name : $name ! ";
}    

在route.php中:

$route['greeting/(:num)/(:any)'] = "greeting/index/$1/$2";    

结果我得到了:

order : , name : steve !

2 个答案:

答案 0 :(得分:3)

实际上,使用双引号是正确。它甚至在手册中表示如此(除了已经完成了一百次),所以我没有看到@cwallenpool指出的问题。
你的路由看起来很好,确保它被称为之后保留路线

$route['default_controller'] = "welcome";
$route['404_override'] = '';
$route['greeting/(:num)/(:any)'] = "greeting/index/$1/$2";


我建议您尝试使用$this->uri->rsegment(n)user guide here上的信息)来捕获导致您遇到麻烦的重新路由的uri段。 (类似于$this->uri->segment(n),但专为重新路由的URI而设计)

您也可以尝试将$config['uri_protocol']从AUTO更改为PATH_INFO(或其他替代方案之一),看看问题是否存在。如果您正在使用htaccess从您的URL中删除index.php,请记住删除$config['index_page']中的'index.php'部分。

答案 1 :(得分:0)

我最近写了一个可以在这种情况下轻松提供的库。我通过名称而不是编号将值传递给所需的变量。这些名称也包含在路线中以便于参考。

可能你可以看看它,在你的情况下可能有用。

https://github.com/aajiwani/LaravelRoutingForCodeIgniter