我已经安装了Symfony2项目,安装了Sonata和FOS用户包
我生成了一个扩展BaseUser的自定义用户类。这是一个摘录:
namespace Application\Sonata\UserBundle\Entity;
use Sonata\UserBundle\Entity\BaseUser as BaseUser;
use Doctrine\ORM\Mapping as ORM;
class User extends BaseUser {
..
/**
* @ORM\ManyToOne(targetEntity="MyProject\UserBundle\Entity\Team", inversedBy="members")
* @ORM\JoinColumn(type="integer", name="team_id", referencedColumnName="id", nullable=true)
*/
protected $team;
public function setTeam(\MyProject\UserBundle\Entity\Team $team)
{
$this->team = $team;
}
public function getTeam()
{
return $this->team;
}
我还有一个可以容纳一些用户的实体“团队”。这是一个摘录:
class Team {
/**
* @ORM\OneToMany(targetEntity="Application\Sonata\UserBundle\Entity\User", mappedBy="team")
*/
protected $members;
public function setMembers(\Doctrine\Common\Collections\ArrayCollection $members)
{
$this->members = $members;
}
public function getMembers()
{
return $this->members;
}
我使用Sonata Admin包来做基本的CRUD。 与一些用户一起创建团队是没有问题的
<?php
class TeamAdmin extends Admin {
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('members', 'entity', array(
'required' => FALSE,
'class' => 'ApplicationSonataUserBundle:User',
'property' => 'username',
'label' => 'Team members',
'multiple' => TRUE,
))
;
}
当我进入团队的编辑屏幕或删除时,问题就会出现。
注意:未定义的索引:团队在/Users/sven/projects/MyProject/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php第1575行
我读了十几个关于这个错误的帖子,但是他们都告诉我在注释中使用了正确的字段名和列名。 这是否有扩展BaseUser类的东西?
对此有任何帮助表示赞赏!
答案 0 :(得分:0)
您是否将$this->members = new ArrayCollection()
放在了Team实体的__construct()中?