带有特定结构参数的 Symfony 路由

Symfony routing with params with specific structure

是否可以像这样在 symfony 中声明路由

/somestuff/{query}

query 的结构

string-with-minus-id000001

我希望能够将第一部分作为控制器中的属性,将第二部分作为 ID。将路线定义为

/somestuff/{name}-id{id}

没用

如果结构总是这样

/somestuff/{name}-id{id}

获取 nameid 的通用方法是

/**
 * @Route("/somestuff/{slug}")
 */
public function someAction(Request $request, $slug)
{
    $reversed = strrev($slug);
    $paramArray = explode('-', $reversed, 1); // limit
    $id = strrev($paramArray[0]);
    $name = strrev($paramArray[1]);
    // rest of code
}

我在注释中找到了一种方法,这是答案:

@Route(
   "/somestuff/{name}-id{id}",
   methods={"GET"} ,
   name="route_name",
   defaults={"name"=""},
   requirements={"name"=".*?", "id"="\d+"}
)