目前,我正在尝试实施一些到symfony 2.5的路线,这导致我遇到一些问题。我需要一个具有相同路由的url方案,具体取决于自定义服务。
route_category:
pattern: /{location}/{category}
defaults: { _controller: LocationBundle:Category:index }
condition: "service('location_category_service').isCategory(request.get('category')) == true"
route_merchant:
pattern: /{location}/{merchant}
defaults: { _controller: LocationBundle:Merchant:index }
condition: "service('location_merchant_service').isMerchant(request.get('merchant')) == true"
我想让symfony做的是:
指定网址路径: / germany / restaurants
给定网址路径: / germany / aldi
给定网址路径: / germany / this-does-not-match-anything
我想,条件会完全符合我的要求,但我只有表达式语言中的requestContext和请求,而不是服务容器。
有人知道,我如何将服务容器注入表达式语言以用于路由目的,或者可能有什么其他方法来帮助解决这个问题?
提前致谢: - )
答案 0 :(得分:1)
有这样的两个变量很麻烦。根据经验,最佳做法是将这两者分开,如下所示:
route_category:
pattern: /{location}/category/{category}
route_merchant:
pattern: /{location}/merchant/{merchant}
否则正如David Kmenta所说,你将编写额外的代码,试图弄清楚是什么。
问问自己,这种类型的编码是否值得在网址中少加一个字?
要添加此功能,请考虑您的用户:如果您的商家听起来像一个类别,他们就会知道差异,或者只是混淆了他们之后的计划。