Silex,你能检查路由是否与回调匹配吗?


Silex, can you check if a Route matches with a callback?

我想要一条与"任何东西"匹配的路线。从"任何"值中,我想查找数据库中是否存在具有给定路径的页面。如果是这样,则需要处理此路由,否则应处理下一个匹配路由。

有没有简单的方法,或者我错过了路线的要点?

  • 尝试断言路由,但我找不到用闭包断言它的方法
  • 搜索了在路由匹配中"返回 false"的方法,以便它处理下一个路由
  • 有没有办法向路由添加回调以查看它是否真的匹配(除了正则表达式模式)

您可以在"任何"控制器中使用 Sub Request 并路由到指定的控制器。请参阅说明书:如何发出子请求:

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