2013-10-21 32 views
2

我想要一条匹配“任何东西”的路线。如果数据库中存在具有给定路径的页面,我希望查找“任何”值。如果是这样,则需要处理该路线,否则应该处理下一个匹配路线。Silex,你可以检查路由是否与回调匹配?

有没有一个简单的方法,或我缺少路线点?

  • 试图主张的路线,但因此处理的下一个路由
  • 我不能找到一种方法用搜索的方式路由匹配“返回false”一个封闭
  • 断言它有没有办法给Route添加一个回调以查看它是否真的匹配(除了正则表达式)

回答

3

你可以在你的“任何东西”控制器中使用子请求并且路由到指定的控制器。参见食谱:How to make sub-requests

switch ($action) { 
    case 'a': 
    $subRequest = Request::create($route, 'GET', array('usage' => self::$usage)); 
    $response = $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST); 
    break; 
    case 'b': ... 
    default : ... 
} 
+0

谢谢你的回答。所以基本上我需要检查它是否是一个页面,然后我返回匹配“任何”路线的页面响应。否则,我不会注册匹配“任何”路线,对吗? – NLZ

+0

“任何”控制器处于活动状态,因此如果您不返回页面响应,则必须返回另一个响应,重定向到另一个路径或引发错误。 –