cakePHP - 带有命名参数数组的Slug

时间:2013-04-09 08:56:33

标签: cakephp

我很高兴尝试弄清楚如何在带有命名参数数组的URL上使用slug:

网址如下:/controller/action/param:1-Slug1/param:2-Slug2/param:3-Slug3

这为我提供了以下请求对象中的命名params数组:

[named] => Array
        (
            [param] => Array
                (
                    [0] => 1-Slug1
                    [1] => 2-Slug2
                    [2] => 3-Slug3
                )

        )

如何配置考虑使用slug的路线?这样输出是:

[named] => Array
            (
                [param] => Array
                    (
                        [0] => 1
                        [1] => 2
                        [2] => 3
                    )

            )

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

首先,您不需要那些[0], [1]内容,通过命名参数相同,您将自动创建一个数组。因此,将您的网址更改为

/controller/action/param:1-Slug1/param:2-Slug2

您的路线如下所示,

Router::connect('/:controller/:action/*');

通过在结尾处传递星星,路线将自动通过您添加的任何额外参数。这将允许您将所需数量的参数传递到所需的URL。

如果要使用命名参数,路由将如下所示。

Router::connect('/:controller/:action:/:slug', array(), array('slug' => '[a-z0-9-]+'));

将匹配正则表达式匹配正则表达式以匹配路由。正则表达式允许任何字母,数字和连字符。

在此处阅读更多内容,http://book.cakephp.org/2.0/en/development/routing.html#passing-parameters-to-action