Reputation: 1468
I have three entity (Activite, CabinetEquipe and ActiviteEquipe). When I add Activite, I want to add many CabinetEquipe in ActiviteEquipe.
CabinetEquipe entity
/**
* @var string
*
* @ORM\Column(name="libelle", type="string", nullable=false, length=125)
*/
private $libelle;
Activite entity
/**
* @ORM\OneToMany(targetEntity="LogicielBundle\Entity\ActiviteEquipe", mappedBy="activite", cascade={"persist", "remove"})
*/
private $equipes;
public function addEquipe(\LogicielBundle\Entity\ActiviteEquipe $equipe)
{
$this->equipes[] = $equipe;
$equipe->setActivite($this);
return $this;
}
public function removeEquipe(\LogicielBundle\Entity\ActiviteEquipe $equipe)
{
$this->equipes->removeElement($equipe);
}
public function getEquipes()
{
return $this->equipes;
}
ActiviteEquipe entity
/**
* @ORM\ManyToOne(targetEntity="UtilisateurBundle\Entity\CabinetEquipe")
* @ORM\JoinColumn(nullable=false)
*/
private $equipe;
public function setEquipe(\UtilisateurBundle\Entity\CabinetEquipe $equipe)
{
$this->equipe = $equipe;
return $this;
}
public function getEquipe()
{
return $this->equipe;
}
But, after my form for add Activite, I have this error : Found entity of type UtilisateurBundle\Entity\CabinetEquipe on association LogicielBundle\Entity\Activite#equipes, but expecting LogicielBundle\Entity\ActiviteEquipe
My Form :
$builder->add('equipes', 'entity', array(
'label' => 'Équipe(s)',
'class' => 'UtilisateurBundle\Entity\CabinetEquipe',
'expanded' => true,
'multiple' => true,
'choices' => $equipes,
'property' => function($equipe) {
return $equipe->getLibelle();
}
));
Can you help me pleases ? I'm newbie in Symfony
Upvotes: 3
Views: 36
Reputation: 3812
You expect \LogicielBundle\Entity\ActiviteEquipe
in your entity.
public function addEquipe(\LogicielBundle\Entity\ActiviteEquipe $equipe)
{
But in form you work on \UtilisateurBundle\Entity\CabinetEquipe
.
$builder->add('equipes', 'entity', array(
'label' => 'Équipe(s)',
'class' => 'UtilisateurBundle\Entity\CabinetEquipe',
In form you need to choose entity which is expected in addEquipe and removeEquipe.
Looks like you expect some kind of proxy (ActiviteEquipe) which is imo not needed here.
Upvotes: 2