[英]how to optimize this entity in symfony2 doctrine?
我有一個實體(布局模板),該實體最多具有10個可配置的側邊欄,這些側邊欄都是一個實體類型相同的實例。
我現在的解決方案是像這樣將其放出(如下)
/**
* @var object BizTV\ContainerManagementBundle\Entity\Container
*
* @ORM\ManyToOne(targetEntity="BizTV\ContainerManagementBundle\Entity\Container")
* @ORM\JoinColumn(name="sidebar1", referencedColumnName="id", nullable=true)
*/
protected $sidebar1;
/**
* @var object BizTV\ContainerManagementBundle\Entity\Container
*
* @ORM\ManyToOne(targetEntity="BizTV\ContainerManagementBundle\Entity\Container")
* @ORM\JoinColumn(name="sidebar2", referencedColumnName="id", nullable=true)
*/
protected $sidebar2;
但是我意識到最好的方法是將它們存儲在一組對象中(將來也不會限制我使用10個側邊欄)。 如果有人可以在這里指出正確的方向。 最難的是選擇這10個實體的表單。 我上面的方法是對這十個屬性中的每一個進行簡單的下拉。
->add('sidebar1', 'entity', array(
'label' => 'Choose sidebar ',
'empty_value' => 'Not active',
'class' => 'BizTVContainerManagementBundle:Container',
'property' => 'select_label',
'query_builder' => function(EntityRepository $er) use ($company) {
return $er->createQueryBuilder('u')
->where('u.company = :company')
->setParameters( array('company' => $company) )
->orderBy('u.name', 'ASC');
},
))
->add('sidebar2', 'entity', array(
'label' => 'Choose sidebar ',
'empty_value' => 'Not active',
'class' => 'BizTVContainerManagementBundle:Container',
'property' => 'select_label',
'query_builder' => function(EntityRepository $er) use ($company) {
return $er->createQueryBuilder('u')
->where('u.company = :company')
->setParameters( array('company' => $company) )
->orderBy('u.name', 'ASC');
},
))
再次,我意識到這並不是最佳的實現方式,但是對於Symfony2來說,我真的不知道該怎么做。
使用Many to Many
關系,對於表單,請使用“集合”字段類型:
http://symfony.com/doc/master/cookbook/form/form_collections.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.