路由,无限数量的参数

ddm*_*ter 6 routing symfony

例如,链接:

/shop/phones/brend/apple/display/retina/color/red
Run Code Online (Sandbox Code Playgroud)

哪里:

phones    - category alias
brend     - name of attribute;   apple    - attribute value
display   - name of attribute;   retina   - attribute value
color     - name of attribute;   red      - attribute value
Run Code Online (Sandbox Code Playgroud)

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

路线的开头很清楚:

/shop/{category}
Run Code Online (Sandbox Code Playgroud)

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

在symfony 1中,在一个结束星("/ shop /:category/*")的一个集合和所有没有明确标记的集合,并且进入一对

name -> value
Run Code Online (Sandbox Code Playgroud)

问题:如何描述symfony 2中的路由?

Tom*_*rei 11

路线:

my_shop:
  pattern: "/{path}"
  defaults: { _controller: "MyShopBundle:Default:shop" }
  requirements:
    path: "^shop/.+"
Run Code Online (Sandbox Code Playgroud)

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

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