1
我想使用Symfony 2窗体来轻松地在我的控制器中使用Doctrine findBy API。symfony 2窗体:我想使用自定义字段名称属性或操作子窗体
其实,我想在我的控制器来写这个代码:
$repository->findBy(
$request->get('filters'),
$request->get('orderBy'),
$request->get('limit'),
$request->get('offset')
);
对于这一点,我的网址应该是这样的!
- /会话?过滤器[用户] = 4
- /会话?过滤器[用户] = 4个&滤波器[年] = 2014 & ORDERBY =日期&限制= 10
要能够把这个功能给我的用户,一个解决方案,我喜欢使用形式:
解决方法n°1
$this->createFormBuilder()
->add('filters', 'array')
->add('user', 'integer')
->add('year', 'integer')
->add('orderBy')
->add('limit')
->add('offset')
;
但是这个解决方案或等价物不存在。 (类型数组不存在)
解决方法n°2
$this->createFormBuilder()
->add('filters[user]', 'integer')
->add('filters[year]', 'integer')
->add('orderBy')
->add('limit')
->add('offset')
;
'[' 和 ']' 的使用字符不准,并产生误差。
另一个解决方法是使用自定义字段的名称,实际上是第一个解决方案(不unexistant式“阵列”)将产生此HTML:
<input type="text" id="form_filters" name="form[filters]" required="required" class="form-control">
,不会服的URL要求。有人知道如何使用自定义名称属性吗? 它也可以工作如果我有机会将属性名称更改为窗体[filters] [something]或甚至更好filters [something]。