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>
形象:新路由前缀以下标注
* @Route("{album}/image")
的方法是如下
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(),
));
}
将所述模板呈现使得w e已经将该表单嵌入结果中以下错误中;
在渲染模板期间抛出了一个异常(“缺少某些强制参数(”专辑“)以生成路由”image_new“的URL)。”)。
使用symfony3.2和twig将URL参数传递给嵌入式控制器的正确方法是什么?
你确定错误来自控制器的嵌入? ''action'=> $ this-> generateUrl('image_new'),',这里强制参数丢失。由于它是一个嵌入的渲染导致的问题,但没有必要直接嵌入cal。 – Joe