Ciao a tutti Ho qualche problema con Symfony2 FormBuilder, in realtà, ho un utente entità collegato (OneByOne) a un'entità Indirizzo, sembra essere molto semplice ma quando i ' m cercando di incorporare il modulo AddressType nella UserType quella che sto di fronte a questa eccezione:Symfony2: Problema dati visualizzazione modulo
visualizzare i dati del modulo dovrebbe essere un'istanza della classe Acme \ Bundle \ AddressBundle \ Entity \ Adresse, ma è un'istanza della classe Doctrine \ Common \ Collections \ ArrayCollection. È possibile evitare questo errore impostando l'opzione "data_class" su null o aggiungendo un trasformatore di visualizzazione che trasforma un'istanza di classe Doctrine \ Common \ Collections \ ArrayCollection in un'istanza di Acme \ Bundle \ AddressBundle \ Entity \ Adresse
ho messo qui qualche codice (ridotto a essere leggibile) per rendere il mio problema più understable:
la mia classe utente (che si estende del FosUserBundle uno):
class User extends BaseUser
{
...
/**
* @ORM\OneToOne(targetEntity="Acme\bundle\AddressBundle\Entity\Address", cascade={"persist", "remove"})
* @ORM\JoinColumn(nullable=true)
* @Assert\Valid
*/
public $address;
.......
}
la Linke Funzione d tipo di modulo buildForm:
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder, $options);
// add your custom field
$builder->add('name','text')
->add('address',new AddressType(),array(
'data_class' => 'Acme\Bundle\AddressBundle\Entity\Address'
)
);
}
mio indirizzo tipo di modulo:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('city','text')
->add('title','text');
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Acme\Bundle\AddressBundle\Entity\Address'
));
}
vi ringrazio in anticipo per il vostro aiuto!
Hai provato ciò che è suggerito nel messaggio di errore? – cheesemacfly
Sì, l'ho provato, ma quando lo faccio ho questo messaggio: spl_object_hash() si aspetta che il parametro 1 sia oggetto, stringa data –