我建立了一个 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 类有关?
对此的任何帮助表示赞赏!