Código:
y el formulario para insertar nuevas visitas:............
class Visita
{
protected $id;
protected $venta;
protected $cliente;
protected $comentario;
............
Código:
Como veis, he añadido dos botones 'submit' al formulario con el siguiente objetivo: ....................
$builder->add('cliente', 'entity', array(
'empty_value' => '-- Seleccionar --',
'class' => 'ClienteBundle:Cliente',
'property' => 'nomComercial',
'label' => 'Cliente',
'attr' => array(
'class' => 'form-control'
)
))
->add('comentario', 'textarea', array(
'label' => 'Comentario',
'required' => false,
'attr' => array(
'placeholder' => 'Breve comentario (opcional)...',
'class' => 'form-control',
'rows' => '10',
)
))
->add('finalizar_sin', 'submit', array(
'label' => 'Finalizar sin compra',
'attr' => array(
'class' => 'btn btn-success'
)
))
->add('finalizar_con', 'submit', array(
'label' => 'Finalizar y realizar pedido',
'attr' => array(
'class' => 'btn btn-success'
)
));
}
..................
- el submit 'Finalizar sin compra' persiste una entidad Visita, marcando el atributo $venta a FALSE. Aquí os muestro el procesamiento para este botón:
Código:
- el submit 'Finalizar y generar pedido' persiste una entidad Visita, marcando el atributo $venta a TRUE, para crear una entidad Pedido y hacer otras operaciones:...................
$visita->setVenta(false);
$em->persist($visita);
$em->flush();
$this->addFlash('info', 'La visita ha sido cerrada sin venta');
return $this->redirectToRoute('visita_listado', array(), 301);
.....................
Código:
La vista tiene el siguiente aspecto:..................... $visita->setVenta(true); $em->persist($visita); $em->flush(); $pedido = new Pedido(); .....................
Código:
El problema es que el método que procesa las visitas me queda muy farragoso y con muchas líneas de código. Me gustaría poder separar de alguna manera el procesamiento y respetar las buenas prácticas. Es decir, que un submit ejecute un 'action' y el otro submit tenga otro 'action', con dos métodos separados en el controlador. <form action="{{ path('visita_nueva') }}" method="POST">
{{ form_errors(formulario) }}
<div class="form-group">
{{ form_row(formulario.cliente) }}
</div>
<div class="form-group">
{{ form_row(formulario.comentario) }}
</div>
<div class="form-group">
{{ form_row(formulario.finalizar_sin) }}
</div>
<div class="form-group">
{{ form_row(formulario.finalizar_con) }}
</div>
{{ form_row(formulario._token) }}
</form>
Si alguien puede echarme un cable, le estaré muy agradecido!


