我发现了symfony3,但我坚持用一个动作的链接获取传递的参数。 在我的twig文件中,我将用户重定向到一个动作:
<td><a href="{{ path('esprit_park_affiche', {'id': voiture.id, 'serie': voiture.serie, 'dateMise': voiture.dateMiseCirculation, 'marque': voiture.marque}) }}" target="_blank">go to</a></td>
我的行动,我正试图获得身份:
/**
* @Route("/AfficheDetail", name="esprit_park_affiche")
*/
public function afficheAction()
{
$id = $this->getParameter("id");
return $this->render("@EspritPark/Voiture/affiche.html.twig", array("id" => $id));
}
但每次我得到:The parameter "id" must be defined.
就像getParameter没有返回任何东西一样。
我甚至尝试过:
$id = $this->get("request")->get("id");
但我明白了:You have requested a non-existent service "request". Did you mean one of these: "monolog.logger.request", "request_stack", "router.request_context", "data_collector.request"?
答案 0 :(得分:4)
基础getParameter()
类中的Controller
方法正在从服务容器中查找参数。
我会将参数作为您路线的一部分。然后,您可以通过操作方法的参数检索值:
/**
* @Route("/AfficheDetail/{id}/{serie}/{dateMise}/{marque}", name="esprit_park_affiche")
*/
public function afficheAction($id, $serie, $dateMise, $marque)
{
// ...
}
如果您不将它们添加到路由模式,则可以通过URL参数访问它们(如果您使用Request
类键入提示,则会自动注入当前请求):
public function afficheAction(Request $request)
{
$id = $request->query->get('id');
$serie = $request->query->get('serie');
$dateMise = $request->query->get('dateMise');
$marque = $request->query->get('marque');
// ...
}