带有特定结构参数的 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}
获取 name 和 id 的通用方法是
/**
* @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+"}
)
是否可以像这样在 symfony 中声明路由
/somestuff/{query}
query
的结构
string-with-minus-id000001
我希望能够将第一部分作为控制器中的属性,将第二部分作为 ID。将路线定义为
/somestuff/{name}-id{id}
没用
如果结构总是这样
/somestuff/{name}-id{id}
获取 name 和 id 的通用方法是
/**
* @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+"}
)