php-Symfony2-使用其他属性保存多个

php-Symfony2-使用其他属性保存多个,php,symfony,many-to-many,entity,symfony-forms,Php,Symfony,Many To Many,Entity,Symfony Forms,我有一个表格,其中有一个实体程序、一个实体组织和另一个程序组织,它们建立了第一个程序之间的关系 此实体ProgramOrganization与OneToMany/ManyToOne相关,因为它包含其他字段 问题在于表单显示正确,但当我想将其保存到数据库中时,我收到以下消息: 在关联上找到类型为…\NomBundle\entity\Organization的实体…\NomBundle\entity\Program\ProgrammeOrganizations,但应为…\NomBundle\enti

我有一个表格,其中有一个实体程序、一个实体组织和另一个程序组织,它们建立了第一个程序之间的关系

此实体ProgramOrganization与OneToMany/ManyToOne相关,因为它包含其他字段

问题在于表单显示正确,但当我想将其保存到数据库中时,我收到以下消息:

在关联上找到类型为…\NomBundle\entity\Organization的实体…\NomBundle\entity\Program\ProgrammeOrganizations,但应为…\NomBundle\entity\ProgramOrganization

我使用SensioGeneratorBundle和原则:shema:validate是正确的

另一方面,如果删除此关系,则所有内容都会正确保存

以下是我的代码摘录:(属性未翻译)

实体计划:

/**
*@ORM\OneToMany(targetEntity=“ProgrammeOrganization”,mappedBy=“programme”)
*/
受保护的组织;
/**
*建造师
*/
公共函数构造()
{
$this->ProgrammeOrganizations=new\Doctrine\Common\Collections\ArrayCollection();
}
/**
*添加程序组织
*
*@param\…\…\Entity\ProgrammeOrganization$ProgrammeOrganizations
*@返回计划
*/
公共功能AddProgrammeOrganization(\…\Entity\ProgrammeOrganization$ProgrammeOrganizations)
{
$this->ProgrammeOrganizations[]=$ProgrammeOrganizations;
退还$this;
}
/**
*删除计划组织
*
*@param\…\…\Entity\ProgrammeOrganization$ProgrammeOrganizations
*/
公共功能移除ProgrammeOrganization(\…\…\Entity\ProgrammeOrganization$ProgrammeOrganizations)
{
$this->ProgrammeOrganizations->removeElement($ProgrammeOrganizations);
}
/**
*获取项目组织
*
*@return\doctor\Common\Collections\Collection
*/
公共功能GetProgrammeOrganizations()
{
返回$this->ProgrammeOrganizations;

}
我想您的错误就在这里,我看不到您的程序和组织之间的链接,但您的formtype表示我希望在$ProgrammeOrganizations变量上有一个与组织实体链接的表单,该变量声明为ProgrammeOrganization实体而不是Organization

 ->add('programmeOrganisations' , 'entity' , array(
                  'class'    => 'NomBundle:ProgrammeOrganisation ' ,
                  'label' => 'Organisations list',
                  'property' => 'label' ,
                  'expanded' => false ,
                  'multiple' => true ,

                ))

我应该这样做。可能还有其他我没有注意到的错误

评论不适用于扩展讨论;这段对话已经结束。