【问题标题】:Properly setting Cake routes with parameters使用参数正确设置 Cake 路由
【发布时间】:2013-02-08 02:25:35
【问题描述】:

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

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

效果几乎完美,但如果我输入如下 URL:

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

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

http://localhost/activate/ajsheeugnbloiuffheogysswhvnntpdd

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

【问题讨论】:

    标签: php cakephp routes


    【解决方案1】:

    您可以为路由设置正则表达式匹配,例如

    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

    【讨论】:

    • 您可能希望将其添加到最后一个数组中,以便将“id”作为第一个参数传递给激活操作; 'pass' => 数组('id')
    猜你喜欢
    • 2016-06-18
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多