2012-01-26 12 views
8

gönderildikten sonra katıştırılmış denetleyicide yeniden yönlendirilemiyorum Yeni varlık oluşturmak için 1) formunu yazdıran indeks işlemim var; Bütün varlıkları 2) listesi:Dal şablonunda embed form denetleyicisi:

public function indexAction() 
{ 
    $em = $this->getDoctrine()->getEntityManager(); 

    $entities = $em->getRepository('MyBundle:Entity')->findAll(); 

    return array(
     'entities' => $entities, 
    ); 
} 

Twig:

{% block content %} 
    {% render "MyBundle:Entity:new" %} 
    {% render "MyBundle:Entity:list" %} 
{% endblock %} 

Varlık Kontrolörü içinde newAction standart form kontroller geçerli: varlık kalıcılığı çalışmaz edilir

public function newAction() 
{ 
    $entity = new Entity(); 
    $form = $this->createForm(new EntityType(), $entity); 

    $request = $this->getRequest(); 
    if ($request->getMethod() == 'POST') { 
     $form->bindRequest($request); 

     if ($form->isValid()) { 
      $em = $this->getDoctrine()->getEntityManager(); 
      $em->persist($entity); 
      $em->flush(); 

      // NOT WORK 
      return $this->redirect($this->generateUrl('entity_show', 
       array('id' => $entity->getId()))); 
     } 
    } 
    return array(
     'form' => $form->createView(), 
    ); 
} 

Yönlendirme sonra, hata:

An exception has been thrown during the rendering of a template 
("Error when rendering "http://example.com/app_dev.php/url/" 
(Status code is 302).") in MyBundle:Default:index.html.twig at line 2. 

cevap

3

Un Neyse ki, bu tasarım gereğidir. Yerleşik denetleyicilerinden yönlendiremezsiniz. Bir geçici çözüm olarak, farklı URL'ye gönderebilir, yönlendireni kaydedebilir, ihtiyacınız olan şeyleri yapabilir ve sonuçlarla tekrar yönlendirebilirsiniz.

+0

Farklı bir denetleyiciye gönderdiğinizde, hata durumunda önceden doldurulmuş form verileriyle mevcut denetleyicinize kolayca geri dönemezsiniz ... Symfony'den bozuk tasarım – jsgoupil