我是sonata admin的新手,这是否可以在一个管理类中使用两个实体?
我的用户实体,
应用\ MyBundle \实体\ Users.php
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="username", type="string", length=45, nullable=true)
*/
private $username;
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=100, nullable=true)
*/
private $email;
我的UserProject实体,
应用\ MyBundle \实体\ UserProjects.php
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var \User
*
* @ORM\ManyToOne(targetEntity="Users")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="userId", referencedColumnName="id")
* })
*/
private $userid;
/**
* @var array
*
* @ORM\Column(name="projectId", type="array")
*/
private $projects;
我的Admin类,
class UserAdmin extends SonataUserAdmin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->with('General') // these fields from Users Entity
->add('username')
->add('email')
->with('Projects') // these fields from UserPrjects Entity
/* here i need to add a field for projects related to current user */
}
}
有没有办法让这两个实体连接在一起?
答案 0 :(得分:1)
我建议你在用户端添加一对多:
/**
* @ORM\OneToMany(targetEntity="UserProjects", mappedBy="userid")
*/
protected $userProjects;
您可以使用UserProjects实体。