所以我在routing.yml中得到了这个:
requirements:
var1: \d+
var2: \d+
两者都是自己检查并且有效。 我需要检查2的组合,因为组合并不总是有效。
对于这种情况,我需要检查数据库中2个对象之间的关系,第一个应该是第二个对象的父对象。 我可以在控制器中执行此操作,但我并不喜欢该实现。另外,我需要对超过1条路线进行同样的检查。
我如何添加另一项检查组合的要求?我可以在控制器类中定义一个可以调用的方法吗?
或者最好的解决方案是:
public function indexAction($var1, $var2)
{
$result = $this->checkRelation($var1, $var2);
if ($result) {
// return errorpage
return $result;
}
// ...
}
答案 0 :(得分:0)
因此,我理解您的问题,您需要以下内容:
/parent/child/ --> returns 200
/not_parent/not_child --> returns 404
Symfony2路由组件本身不会这样做,但您可以扩展它。
http://symfony.com/doc/master/cmf/cookbook/using-a-custom-route-repository.html
答案 1 :(得分:0)
我接下来的最终解决方案如下:
这一切与我在最初的问题中发布的内容非常相似。
在多个控制器中使用相同的checkRelation时,最好将其(部分)移动到存储库类或类似的东西,以防止重复代码/逻辑。