voglio separare la logica di convalida modulo:Symfony 2 - la logica forma separata, mostrano errori di forma dopo il redirect
public function contactAction()
{
$form = $this->createForm(new ContactType());
$request = $this->get('request');
if ($request->isMethod('POST')) {
$form->submit($request);
if ($form->isValid()) {
$mailer = $this->get('mailer');
// .. setup a message and send it
return $this->redirect($this->generateUrl('_demo'));
}
}
return array('form' => $form->createView());
}
voglio tradurre in 2 azioni separate:
public function contactAction()
{
$form = $this->createForm(new ContactType());
return array('form' => $form->createView());
}
public function contactSendAction()
{
$form = $this->createForm(new ContactType());
$request = $this->get('request');
if ($request->isMethod('POST')) {
$form->submit($request);
if ($form->isValid()) {
$mailer = $this->get('mailer');
// .. setup a message and send it using
return $this->redirect($this->generateUrl('_demo'));
}
}
// errors found - go back
return $this->redirect($this->generateUrl('contact'));
}
Il problema è che quando esistono errori nel modulo - dopo la convalida del modulo e il reindirizzamento del NON mostrato nell'Avviso di contatto. (probabilmente saranno già dimenticati dopo il reindirizzamento - il contesto degli errori verrà perso)
grazie per informazioni sui requisiti del metodo e utilizzo della vista di ritorno anziché del reindirizzamento. Ma se userò view invece sarà lo stesso di come era - 2 logiche non sono più separate. C'è un modo per utilizzare il reindirizzamento e NON PERDERE errori di forma? – pleerock
Reindirizzare e non perdere i dati dei moduli non sembra l'idea giusta. È possibile impostare gli errori nella sessione e aggiungerli al modulo ma è pieno di potenziali difetti. Cosa stai cercando di allontanarti dalla separazione logica? Potresti potenzialmente restituire $ this-> contactAction(); 'se lo volessi? – Luke
Scusate il mio ultimo commento su return $ this-> contactAction(); ero io spit-balling e non ben considerato – Luke