2012-01-26 7 views
8

I have index action, that print 1) form per la creazione di una nuova Entity; 2) l'elenco di tutte le entità:Incorporare il controller del modulo nel modello di ramoscello: impossibile reindirizzare il controller incorporato dopo l'invio

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 %} 

newAction in Entity Controller è standart regolatore forma:

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(), 
    ); 
} 

Redirect dopo entità persistente non è un lavoro, di errore:

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. 

risposta

3

Un per fortuna, questo è di design. Non è possibile reindirizzare dai controller incorporati. Per ovviare al problema, puoi pubblicare su URL diversi, salvare referrer, fare cose di cui hai bisogno e reindirizzare i risultati.

+0

Quando si registra su un controller diverso, non è possibile tornare facilmente al controller corrente con i dati del modulo precompilato in caso di errore ... Disegno errato di Symfony – jsgoupil

Problemi correlati