1

这是无法正常工作的操作,实体已创建但我总是渲染 AileronsFrontendBundle:Default:observation.html.twig

如代码所示,这个 createAction 应该渲染我的主模板,但模板渲染不是很好。

 /**
 * Creates a new Observation entity.
 *
 * @Route("/observation/new", name="observation_create")
 * @Method("POST")
 * @Template("AileronsFrontendBundle:Default:observation.html.twig")
 */
public function createAction(Request $request) {
    $entity = new Observation();
    $form = $this->createForm(new ObservationType(), $entity);
    $form->bind($request);


    if ($form->isValid()) {
        $entity->getObservator()->setIp($request->getClientIp());
        $em = $this->getDoctrine()->getManager();
        $em->persist($entity);
        $em->flush();

        $msg = array(
            'type'=>'success',
            'title'=>'Merci !',
            'text'=>'Votre observation à bien été enregistré, merci pour votre participation !',
        );
        $this->redirect($this->generateUrl('home', array('msg'=>$msg)));
    }

    return array(
        'entity' => $entity,
        'form' => $form->createView(),
    );

Insted 重定向我试过这个:

$this->render('AileronsFrontendBundle:Default:index.html.twig', array('msg'=>$msg));

它也不起作用。

这是我的索引操作

/**
 * @Route("/", name="home")
 * @Template()
 */
public function indexAction() {
    return array();
}
4

1 回答 1

1

您需要返回重定向。

return $this->redirect($this->generateUrl('home', array('msg'=>$msg)));

一个动作总是需要返回一个响应对象。返回渲染的 Twig 文件的示例:

return $this->render('AcmeTestBundle:Test:test.html.twig', array());
于 2013-03-24T15:59:43.010 回答