编辑/删除与FOS用户相关的实体“团队”时,symfony2未定义索引

时间:2012-12-24 14:54:19

标签: symfony doctrine

我已经安装了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类的东西?

对此有任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

您是否将$this->members = new ArrayCollection()放在了Team实体的__construct()中?