2012-12-24 41 views
2

我已成立了一個Symfony2的項目,索納塔和FOS用戶捆綁安裝時Symfony2中未定義指數編輯/刪除實體「團隊」與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

你把$this->members = new ArrayCollection()放在Team實體的__construct()中嗎?

+0

是的,我做到了。但即使我忘記了這一點,setMembers函數也會執行此初始化 – user1926848