路由,无限数量的参数

时间:2012-07-10 14:48:47

标签: symfony routing

例如,链接:

/shop/phones/brend/apple/display/retina/color/red

其中:

phones    - category alias
brend     - name of attribute;   apple    - attribute value
display   - name of attribute;   retina   - attribute value
color     - name of attribute;   red      - attribute value

属性可以是任何数字。订单也可能不同。

路线的开头很清楚:

/shop/{category}

接下来要做什么还不清楚。

在symfony 1中,在结束明星(" / shop /:category / *")中设置了一个未明确标记的所有内容,并且出现在一对

name -> value

问题:如何在symfony 2中描述路线?

1 个答案:

答案 0 :(得分:11)

路线:

my_shop:
  pattern: "/{path}"
  defaults: { _controller: "MyShopBundle:Default:shop" }
  requirements:
    path: "^shop/.+"

然后你可以解析控制器中的$ path:

class DefaultController extends Controller {
...
    public function shopAction($path) {
        // $path will be 'shop/phones/brend/apple/display/retina/color/red'
        ...
    }
...
}