Hola buenas! Soy nuevo en Symfony y necesito saber como crear un formulario para manejar dos entidades.
Por un lado tengo la entidad Cliente, con los campos IDCliente, Nombre, Web, etc
Por otro lado tengo la entidad Contacto, con los campos IDCliente(Cliente al que pertenece el contacto), nombre(Que no necesariamente tiene que ser el mismo que el Nombre de cliente, sino de la persona de contacto del cliente), apellidos etc.
No se como crear un formulario, que tenga los campos de ambas entidades y que no sea cada uno por separado que es como lo tengo:
Form/Contactotype.php
Código:
<?php
namespace GeneralBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ContactoType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('idcliente', 'hidden')
->add('principal', 'hidden')
->add('nombre', 'text')
->add('Guardar','submit')
;
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'GeneralBundle\Entity\Contacto'
));
}
}
Form/Clientetype.php
Código:
<?php
namespace GeneralBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ClienteType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('idcliente', 'hidden')
->add('nombreempresa', 'text')
->add('Guardar','submit')
;
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'GeneralBundle\Entity\Cliente'
));
}
}
Muchas gracias y espero haberme explicado bien! Espero que hallan tenido también la misma tesitura y lo hallan solucionado rápidamente.