我被一個涉及多對多關係的Symfony2問題卡住了:我有一個用戶實體和一個項目實體,與多對多關係:symfony2 - 多對多關係/表格
我的用戶實體:
class User implements UserInterface
{
[...]
/**
* @ORM\ManyToMany(targetEntity="Project", inversedBy="users", cascade={"persist"})
* @ORM\JoinTable(name="user_project",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="project_id", referencedColumnName="id")}
*)
*
* @var ArrayCollection $projects
*/
protected $projects;
我的項目實體:
class Project
{
[...]
/**
* @ORM\ManyToMany(targetEntity="User", mappedBy="projects")
*/
protected $users;
Symfony2中創建的 「鏈接」 表(稱爲user_project),然後我插入一些行。例如,我有2個用戶(id = 1/id = 2)和2個項目(id = 1/id = 2)。
以我表user_project我插入下面的行:
- 1(USER_ID) - 1(PROJECT_ID)
- 1(USER_ID) - 2-(PROJECT_ID)
- 2(USER_ID) - 1 (project_id)
因此,用戶1分配給項目1和2,而用戶2僅分配到項目1。
我的問題是,我不知道如何爲指定的用戶選擇項目。例如,我想顯示(在我的表單中)一個選擇框,並將項目分配給我的用戶。 (對於用戶2,我只希望有項目1.在我的選擇框)
我的形式:
$builder->add('project', 'entity', array(
'class' => 'WebaccessBugtrackerBundle:Project',
'property' => 'name',
'query_builder' => function($er) use ($userManager) {
$qb = $er->createQueryBuilder('project')
->orderBy('project.name', 'ASC');
$qb-> ????
}
return $qb;
},
'property' => 'name'));
我希望你明白我在說什麼,你能幫助我:)
謝謝!
顯示整個窗體類型和操作 – nikita2206
的代碼檢查我的問題,我有同樣的問題,我只是解決吧! http://stackoverflow.com/questions/21173133/many-to-many-and-form-symfony2 – JGrinon