08/08/2012, 18:29
|
| | Fecha de Ingreso: agosto-2012
Mensajes: 6
Antigüedad: 12 años, 3 meses Puntos: 0 | |
guardar los datos del usuario junto al Formulario Estimados Soy nuevo en esto de Symfony, les cuento tengo dos tablas usuario e ingresos y estoy haciendo un formulario para ingresar los ingresos de un usuario, por lo que cada usuario ingresara sus propios ingresos, lo que necesito hacer es mantener el ID del usuario y enviarlo a la base de datos junto con el formulario, antes con PHP puro sabia hacerlo, pero ahora con Symfony se me esta complicando mucho esto....Agradesco desde ya la Ayuda, gracias...
Código:
EL FORMULARIO
namespace scge\scgeBundle\Form\Usuarios;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use scge\scgeBundle\Validator\Constraints\DNI;
class IngresosType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('numero', 'text', array('label' => 'Numero'));
$builder->add('RUT');
$builder->add('plancta_id', 'entity',
array('label' => 'Plan Cuenta',
'class' => 'scgeBundle:PlanCta',
'property' => 'nombre',
'required' => 'true',
'query_builder' => function (\Doctrine\ORM\EntityRepository $repository)
{
return $repository->createQueryBuilder('p')
->where('p.codigo like :codigo')
->setParameter('codigo', '1%');
}
)
);
$builder->add('tipodoc', 'entity',
array('label' => 'Tipo Documento',
'class' => 'scgeBundle:TipoDoc',
'property' => 'descripcion',
'required' => 'true',
'query_builder' => function (\Doctrine\ORM\EntityRepository $repository)
{
return $repository->createQueryBuilder('td')
->where('td.tipo like :tipo')
->setParameter('tipo', 'ingreso')
;
}
)
);
$builder->add('nombre','text', array('label' => 'Nombre '));
$builder->add('rut', 'text', array('label' => 'Rut '));
$builder->add('fecha');
$builder->add('glosapago','textarea');
$builder->add('monto', 'text');
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'scge\scgeBundle\Entity\Ingreso',
);
}
public function getName()
{
return 'nombre';
}
}
Código:
EL CONTROLADOR
public function ingresoAction()
{
$form = $this->get('form.factory')->create(new IngresosType(), array());
$request = $this->get('request');
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
if ($form->isValid()) {
// Mensaje para notificar al usuario que todo ha salido bien
$session = $this->get('request')->getSession();
$session->setFlash('notice', 'Usuario Creado Satisfactoriamente');
$ingasto = new Ingreso();
$ingastos = $form->getData();
//$username = $this->getUser()->getUsername();
$ingasto->setCtacont($ingastos['plancta_id']);
$ingasto->setEstado(0);
$ingasto->setFecha($ingastos['fecha']);
$ingasto->setGlosa($ingastos['glosapago']);
$ingasto->setMonto($ingastos['monto']);
$ingasto->setNombre($ingastos['nombre']);
$ingasto->setNula(0);
$ingasto->setNumero($ingastos['numero']);
$ingasto->setRUT($ingastos['rut']);
$ingasto->setTipodoc($ingastos['tipodoc']);
$ingasto->setUsuario($username);
// Guardamos el objeto en base de datos
$em = $this->get('doctrine')->getEntityManager();
$em->persist($ingasto);
$em->flush($ingasto);
return $this->render('scgeBundle:Usuario:ingreso.html.twig', array('form' => $form->createView()));
}
}
return $this->render('scgeBundle:Usuario:ingreso.html.twig', array('form' => $form->createView()));
}
Código:
LA VISTA
{% extends "scgeBundle::layout.html.twig" %}
{% block title %}Ingreso de Donaciones{% endblock %}
{% block metadesc %}Donaciones{% endblock %}
{% block pageid 'ponencias' %}
{% block contenido %}
{{ app.session.flash('id') }}
<h2>Ingreso de Donaciones</h2>
{{ form_errors(form) }}
<form action="{{ path('ingreso') }}" method="post" {{ form_enctype(form) }}>
<div class="grid_6 alpha">
{{form_rest(form)}}
</div>
<input type="submit" value="Grabar" />
</form>
{% endblock %}
{% block lateral %}
{% endblock %}
|