Php 如何添加新选项以选择实体
我正在制作一个有很多发票的视图 用户可以按“客户”、“日期”和“参考对象”对其进行筛选 发票链接到客户,客户可以有“参照物”也可以没有。Php 如何添加新选项以选择实体,php,forms,symfony,Php,Forms,Symfony,我正在制作一个有很多发票的视图 用户可以按“客户”、“日期”和“参考对象”对其进行筛选 发票链接到客户,客户可以有“参照物”也可以没有。 因此,在我的“referent”选择列表中,默认值是“All”,不按“referent”过滤,其余的是QueryBuilder获得的所有引用的列表 现在,我需要帮助,以了解如何在选择列表中插入选项“无参照物”,以获取客户没有参照物的所有发票 这是我的“InvoiceSearchType”中的引用字段: ->add('referent', 'genemu_
因此,在我的“referent”选择列表中,默认值是“All”,不按“referent”过滤,其余的是QueryBuilder获得的所有引用的列表 现在,我需要帮助,以了解如何在选择列表中插入选项“无参照物”,以获取客户没有参照物的所有发票 这是我的“InvoiceSearchType”中的引用字段:
->add('referent', 'genemu_jqueryselect2_entity', array(
'label' => 'Referent',
'class' => 'GeocalUserBundle:User',
'query_builder' => function (UserRepository $ur) {
return $ur->getEmployesQueryBuilder();
},
'empty_value' => '',
'configs' => array(
'placeholder' => 'All',
'width' => '100%',
'allowClear' => true,
),
'required' => false,
))
这里是我的QueryBuilder:
public function getEmployesQueryBuilder()
{
$queryBuilder = $this->createQueryBuilder('u')
->leftJoin('u.groups', 'g')
->where('u.enabled = 1')
->andWhere('g.id NOT IN(1)')
->orderBy('u.nom', 'ASC')
;
return $queryBuilder;
}
我只是这样显示字段:
<td class="label">Chargé d'affaire</td>
<td colspan="2">{{ form_widget(form.referent) }}</td>
Chargéd'affaire
{{form_小部件(form.referent)}
提前感谢!:) [SOLVED]
首先,我添加了一个获取查询结果(数组)的方法,添加另一个referent并返回它:
public function getReferentWithNull()
{
// Get the list of referents
$referents = $this->doctrine->getRepository('GeocalUserBundle:User')->getEmployesQueryBuilder()->getQuery()->getResult();
// Create a new instance
$nobody = new User();
$nobody->setName("No Referent");
// Put it in the array result with the key -1
$referents[-1] = $nobody;
return $referents;
}
然后,我将表单字段类型修改为“choice”类型,并调用我以前的函数:
->add('referent', 'genemu_jqueryselect2_choice', array(
'label' => 'Referent',
'choices' => $this->getReferentWithNull(),
'empty_value' => '',
'configs' => array(
'placeholder' => 'All',
'width' => '100%',
'allowClear' => true,
),
'required' => false,
))
最后,我有最后一个选项“No Referent”,键为-1
希望它能帮助某人:)请显示相应的模板。。。