[英]Retrieving another entity from a form in Symfony2
我有一個在Symfony2中填充Project
學說實體的表格。
假設這些字段是:
Name: ______________
Customer: ____________
如果Customer
是另一條學說實體。
我的問題是,我無法檢索客戶實體。 我嘗試根據實例ID檢索它(該字段變為Customer ID),然后在prePersist事件偵聽器中為所檢索的實體設置$project->customer
project- $project->customer
,但對我來說似乎有些矯kill過正。
我要做的只是以下內容:
Customer
實體作為客戶字段的列表框(在“ Project
表單中) 我知道它必須非常簡單,我只用3分鍾的時間就可以使用PHP / MySQL和一些外鍵進行設置,但是我根本不知道使用Symfony2 / Doctrine的最佳方法(這意味着在某種程度上尊重標准,而不是意大利面條)。
所以,我的問題是:
MyBundle\\Form\\ProjectType->buildForm()
函數中聲明什么? 謝謝。
剛剛找到答案。 這真的很簡單:)
在MyBundle / Form / ProjectType.php中:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('customer', 'entity', array(
'class' => 'Me\Bundle\MyBundle\Entity\Customer',
'property' => 'name'));
}
然后在Project.orm.yml中(是的,我喜歡Yaml):
manyToOne:
customer:
targetEntity: Customer
joinColumn:
name: customerId
referencedColumnName: id
nullable: false
最后,在Customer.orm.yml中:
oneToMany:
projects:
targetEntity: Project
mappedBy: customer
就是這樣! Symfony2會處理所有這一切。 只是簡單的魔術。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.