猿问

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

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

/somestuff/{query}

结构在哪里query

string-with-minus-id000001

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

/somestuff/{name}-id{id}

不起作用


动漫人物
浏览 107回答 2
2回答

慕村9548890

我找到了一种在注释中执行此操作的方法,答案如下:@Route(   "/somestuff/{name}-id{id}",   methods={"GET"} ,   name="route_name",   defaults={"name"=""},   requirements={"name"=".*?", "id"="\d+"})

holdtom

如果结构总是看起来像这样/somestuff/{name}-id{id}获取名称和 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}
随时随地看视频慕课网APP
我要回答