1
私は小枝テンプレートのコントローラを埋め込んだ場合、どのように私は、レンダリングされた埋め込まれたルートに必要なURLパラメータを渡すのですか?URLパラメータをレンダリングされたsymfony3フォームに渡すにはどうすればいいですか?
次の例では、画像はアルバムに属し、アルバムID(複合キーのそれの一部)を必要とするが
<tbody>
<tr>
<th>Id</th>
<td>{{ album.id }}</td>
</tr>
<tr>
<th>Name</th>
<td>{{ album.name }}</td>
</tr>
<tr>
{{ render(controller(
'AppBundle:Image:new',
{'album': album}
)) }}
</tr>
</tbody>
画像:新しいルートは、次の注釈
が付いていますテンプレートをレンダリングpublic function newAction(Request $request, $album)
{
$image = new Image();
$form = $this->createForm(
'AppBundle\Form\ImageUploadType',
$image,
[
'action' => $this->generateUrl('image_new'),
'method' => 'POST',
]
);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($image);
$em->flush();
return $this->redirectToRoute('image_show', array('id' => $image->getId()));
}
return $this->render('image/new.html.twig', array(
'image' => $image,
'form' => $form->createView(),
));
}
を次のように
* @Route("{album}/image")
方法は、Wそのそのフォームを次のエラーの結果に埋め込んでいます。
テンプレートのレンダリング中に例外がスローされました(ルート "image_new"のURLを生成するためにいくつかの必須パラメータにはアルバムがありません)。
symfony3.2とtwigを使用して組み込みコントローラにURLパラメータを渡す正しい方法は何ですか?
あなたはエラーがコントローラの埋め込みから来ていますか? '' action '=> $ this-> generateUrl(' image_new ')、 '、ここで必須パラメータはありません。埋め込みであるため、レンダリングによって問題は発生しますが、必要ではありません。直接埋め込むことができます。 – Joe