symfony - 在 Symfony 中添加表单后找不到实体

标签 symfony doctrine-orm doctrine symfony-forms

我有三个实体(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',

在表单中,您需要选择 addEquiperemoveEquipe 中预期的实体。

看起来您需要某种代理(ActiviteEquipe),我在这里不需要。

关于symfony - 在 Symfony 中添加表单后找不到实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35841874/

相关文章:

javascript - Symfony 2 表单字段 - 图像预览而不是文件路径

php - 与 Symfony2.4 相比,Symfony2.5 的初始化时间较慢

php - 避免延迟加载 Doctrine Symfony2

php - Doctrine 查询内存使用情况

mysql - orderBy 和 group By 查询

forms - Symfony 2 : The option "validation_constraint" does not exist

php - Symfony2+Twig,翻译中的变量返回 "A message must be a simple text"

php - Symfony Doctrine 迁移 $connection 没有权限

doctrine-orm - 标识符中的Doctrine 2 ORM DateTime字段

php - SQL 建议 - 从表中选择多行作为内部联接