我有三个实体(Activite、CabinetEquipe 和 ActiviteEquipe)。我在添加Activite的时候,想在ActiviteEquipe中添加很多CabinetEquipe。
CabinetEquipe 实体
/**
* @var string
*
* @ORM\Column(name="libelle", type="string", nullable=false, length=125)
*/
private $libelle;
事件实体
/**
* @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 实体
/**
* @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;
}
但是,在我添加 Activite 的表单之后,我遇到了这个错误:Found entity of type UtilisateurBundle\Entity\CabinetEquipe on association LogicielBundle\Entity\Activite#equipes, but expecting LogicielBundle\实体\ActiviteEquipe
我的表单:
$builder->add('equipes', 'entity', array(
'label' => 'Équipe(s)',
'class' => 'UtilisateurBundle\Entity\CabinetEquipe',
'expanded' => true,
'multiple' => true,
'choices' => $equipes,
'property' => function($equipe) {
return $equipe->getLibelle();
}
));
你能帮我吗?我是 Symfony 的新手
最佳答案
您希望实体中有 \LogicielBundle\Entity\ActiviteEquipe
。
public function addEquipe(\LogicielBundle\Entity\ActiviteEquipe $equipe)
{
但在表单中,您在 \UtilisateurBundle\Entity\CabinetEquipe
上工作。
$builder->add('equipes', 'entity', array(
'label' => 'Équipe(s)',
'class' => 'UtilisateurBundle\Entity\CabinetEquipe',
在表单中,您需要选择 addEquipe 和 removeEquipe 中预期的实体。
看起来您需要某种代理(ActiviteEquipe),我在这里不需要。
关于symfony - 在 Symfony 中添加表单后找不到实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35841874/