zerkalica / millwright-filter-bundle
此软件包最新版本(dev-master)没有可用的许可证信息。
Millwright 过滤器组件包:将 KnpPaginatorBundle 和 LexikFormFilterBundle 结合在一起
dev-master
2012-10-19 21:21 UTC
Requires
- knplabs/knp-paginator-bundle: dev-master
This package is not auto-updated.
Last update: 2024-09-14 14:14:16 UTC
README
将 KnpPaginatorBundle 和 LexikFormFilterBundle 结合在一起。
-
注入服务 @millwright_filter.paginator
-
使用 PaginatorInterface $paginator;
-
使用 $this->paginator->paginate($builder, 'users', $form);
-
builder - QueryBuilder 或用于分页的东西
-
'user' - 分页参数和查询构建器命名空间
-
form - 过滤表单,请参阅 LexikFormFilterBundle
服务
millwright_filter.registry 用于存储查询参数(请参阅 OptionsRegistryInterface)
Twig 函数
用于在 get 参数中保存分页器和过滤器状态。
options_registry(exclude_namespace, overrides) - 返回数组,用于在过滤表单和分页器之间共享查询参数
{% beginmacro form(form, attributes) %}
<form {{ form_enctype(form) }} {{ _self.attributes(attributes) }} novalidate>
{{ form_widget(form) }}
{#
options_registry(form.vars.name) - build http query with all stored parameters, except this form
#}
{% for key, value in options_registry(form.vars.name) %}
<input name="{{ key }}" value="{{ value }}" type="hidden" />
{% endfor %}
</form>
{% endmacro form %}
options_query(overrides, exlude_namespace) - 返回字符串,构建 HTTP 查询,用于链接(分页器、过滤器状态)
<a href="?{{ options_query({current: next}) }}">Prev</a> <a href="?{{ options_query({current: prev}) }}">Next</a>
在控制器中
/** @var $options \Millwright\Util\Request\OptionRegistryInterface */ $options = $this->get('millwright_filter.registry'); $options->addOption('current', $currentDate->format(DateUtil::SQL_DATE)); return array('next' => 'next week', 'prev' => 'prev week', 'paginator' => $paginator, 'filter' => $form);