我嘗試了在Google和Google上搜索的所有內容,但仍然沒有運氣。如何將ArrayCollection傳遞給DoctrineModule Form Element ObjectSelect
我有與國家多對多關係用戶的實體,這裏是:
/**
* @var \Doctrine\Common\Collections\Collection
* @ORM\ManyToMany(targetEntity="Admin\Entity\Country", cascade={"persist", "remove"})
* @ORM\JoinTable(name="user_country_linker",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="country_id", referencedColumnName="id")}
*)
*/
protected $countries;
現在,我想用允許/只分配各國展示DoctrineModule \表格\元素\ ObjectSelect。我通過調用$ this-> zfcUserAuthentication() - > getIdentity() - > getCountries()來獲得此列表。
有什麼辦法可以將這個ArrayCollection傳遞給ObjectSelect表單元素嗎?
$this->add(array(
'name' => 'country',
'type' => 'DoctrineModule\Form\Element\ObjectSelect',
'options' => array(
'label' => 'Country',
'object_manager' => $em,
'target_class' => '\Admin\Entity\Country',
'property' => 'code',
'find_method' => array(
'name' => 'findBy',
'params' => array(
'criteria' => array(),
'orderBy' => array('id' => 'asc'),
),
),
'column-size' => 'sm-10',
'label_attributes' => array('class' => 'col-sm-2'),
'help-block' => 'Select country where the entity is present'
),
'attributes' => array(
'required' => false
)
));
非常感謝您的幫助,我真的很感激它!
我asume你在用戶實體的國家。只需使用用戶實體的關係。 – cptnk
您好,感謝您的評論,但我不明白:( 是的'國家'被放置在用戶實體,但我很想設置ObjectSelect的來源爲$ zfcUserIdentity,因爲它保存當前登錄用戶的允許國家 –
@ cptnk我忘了在上面我的評論中加入你...... –