Symfony Can';t在创建JoinTable(1-n-1)的实体后,向ManyToMany添加值
起初,我在用户和俱乐部实体之间有很多关系。 现在,我想在JoinTable(users\u clubs)中添加一列,所以我必须创建第三个实体UserClub。我运行了条令:schema:update——force命令,一切似乎都很好 我的ProfileForm设置有如下实体字段:Symfony Can';t在创建JoinTable(1-n-1)的实体后,向ManyToMany添加值,symfony,Symfony,起初,我在用户和俱乐部实体之间有很多关系。 现在,我想在JoinTable(users\u clubs)中添加一列,所以我必须创建第三个实体UserClub。我运行了条令:schema:update——force命令,一切似乎都很好 我的ProfileForm设置有如下实体字段: ->add( 'clubs', 'entity', array( 'class' => 'AcmeMainBundle:Club', 'property' => 'name',
->add(
'clubs', 'entity', array(
'class' => 'AcmeMainBundle:Club',
'property' => 'name',
'multiple' => 'true',
'query_builder' => function(EntityRepository $er)
{
return $er->createQueryBuilder('club')
->orderBy('club.name', 'ASC');
},
)
)
表单呈现良好,但在保存表单时出现以下错误:
Catchable Fatal Error: Argument 1 passed to Acme\UserBundle\Entity\User::addClub() must be an instance of Acme\MainBundle\Entity\UserClub, instance of Acme\MainBundle\Entity\Club given in /src/Acme/UserBundle/Entity/User.php
用户实体添加俱乐部功能:
/**
* Add clubs
*
* @param UserClub $userClub
* @return User
*/
public function addClub(UserClub $userClub)
{
if (!$this->userClubs->contains($userClub))
{
$this->userClubs->add($userClub);
$userClub->setUser($this);
}
return $this;
}
你能发布你的用户实体吗?
您的用户俱乐部是否为您的用户实体中的nammed user_俱乐部
如果是:
->add(
'userclubs', 'entity', array(....
不是:
我按照这个指南解决了这个问题: 我更改了addClub函数并添加了setClubs函数,该函数负责在新的UserClub实体中设置club和用户
->add(
'userclubs', 'entity', array(....
->add(
'clubs', 'entity', array(