使用参数正确设置Cake路由

时间:2013-02-08 02:25:36

标签: php cakephp routes

我正在创建第一页,需要一个名为$hash的参数。我的路线目前是这样的:

Router::connect('/activate/*', array('controller' => 'users', 'action' => 'activate'));

几乎完美无缺,但如果我输入的网址如下:

http://localhost/activate/something/somethingelse/long/url

它匹配路线。我希望它只匹配一个32个字符长的参数,如下所示:

http://localhost/activate/ajsheeugnbloiuffheogysswhvnntpdd

以及导致404的其他一切。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以为路径设置正则表达式匹配

Router::connect(
    '/activate/:id',
    array('controller' => 'users', 'action' => 'activate'),
    array('id' => '[a-zA-Z]{32}')
);

你可以调整正则表达式,目前它只是字母。

以下是参考:http://book.cakephp.org/2.0/en/development/routing.html#route-elements