8

我知道我可以通过$request->get('_route');.

如果我的路线是这样定义的:

/*
 * @Route("/get_by_category/{id}", defaults={"id" = 0}, name="get_products_by_category")
 */

如何id从服务中检索变量?

4

4 回答 4

17

您可以从Request

$routeParams = $request->attributes->get('_route_params');
$id = $routeParams['id'];
于 2012-07-31T09:51:34.737 回答
9

$request->attributes->get('id')成功了。

于 2012-07-31T10:10:40.440 回答
3

你可以做

/*
* @Route("/get_by_category/{id}", defaults={"id" = 0}, name="get_products_by_category")
*/
public function getProductsAction($id)
{
}

$id变量将在控制器中可用。

于 2012-07-31T09:50:10.153 回答
0

在 Symfony 3.4 中,我刚刚添加function functionName(int $id)并且变量$id已在函数范围内定义。我的路径是something/{id}。对于多个参数like/{id}/that.{format},我只是在函数中添加了第二个参数:function functionName(int $id, string $format),它们都在范围内。事实上,myfunctionName__invoke用作路由控制器的类中的一个。

于 2021-12-10T16:38:25.460 回答