Forms Symfony2将选项附加到查询生成器
可以在Symfony2中将其他选项附加到实体查询生成器 这是我的密码:Forms Symfony2将选项附加到查询生成器,forms,symfony,query-builder,Forms,Symfony,Query Builder,可以在Symfony2中将其他选项附加到实体查询生成器 这是我的密码: $builder->add('ship_to','entity',array( 'class' => 'WICCommonBundle:CustomOptions', 'property' => 'option_value', 'query_builder' => function(EntityRepository $er) {
$builder->add('ship_to','entity',array(
'class' => 'WICCommonBundle:CustomOptions',
'property' => 'option_value',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('co')
->where('co.account=?0')
->andWhere('co.option_field=?1')
->orderBy('co.option_value', 'ASC')
->setParameters(array(
$this->account,"ship_to",
));
},
'empty_value' => 'Select Ship To',
));
我需要附加以下选项,以便在下拉框中它最后出现
“新建”=>“添加新内容”
我试图通过添加以下内容来实现此目的,但没有成功:
'choices' => array(
'New' => 'Add New'
),
谢谢你的帮助 有两条路要走:
1) mkjasinski所说:创建一个工厂方法,将数据与最终选项相结合,或者
2) 将事件侦听器添加到表单生成器中,在呈现表单之前添加额外选项,如下所示:
$builder->addEventListener(
FormEvents::POST_SET_DATA,
function(FormEvent $event) use($user, $factory){
$form = $event->getForm();
// get your form field
$field = $form->get('ship_to')
// ... alter the field so your data is added to it
}
);
在类中创建方法,该方法从存储库中获取数据,添加数据并返回带边框的数据。