使用knp paginator和FOS Elastica查找查询参数

时间:2014-02-06 19:54:04

标签: symfony elastica knppaginator

我无法在我的Symfony2应用程序中正确实现knp paginator的排序功能。我相信我遇到问题的原因是因为我不知道FOSElastica如何从其内置的paginator构建查询,因此不知道在我的twig文件中传递给knp_pagination_sortable(...)的参数。这就是我在控制器中渲染我的paginator的方式:

$finder = $this->get('fos_elastica.finder.employees.employee');

$paginator = $this->get('knp_paginator');

// $name is a parameter that is properly passed to my action function in
// the controller
$knp =  $paginator->paginate(
            $finder->createPaginatorAdapter($name),
            $this->get('request')->get('page', $page),
            25
        );

这是我尝试实现排序功能的twig文件的一部分:

<table border="1">
       <tr>
            <th>{{ knp_pagination_sortable(my_pager, 'Employee Number', 'emp_no') }}</th>
            <th>{{ knp_pagination_sortable(my_pager, 'First Name', 'first_name') }}</th>
                    <th>{{ knp_pagination_sortable(my_pager, 'Last Name', 'last_name') }}</th>
            <th>{{ knp_pagination_sortable(my_pager, 'Birth Date', 'birth_date') }}</th>
                    <th>{{ knp_pagination_sortable(my_pager, 'Gender', 'gender') }}</th>
                    <th>{{ knp_pagination_sortable(my_pager, 'Hire Date', 'hire_date') }}</th>
       </tr>
       {% for employee in my_pager %}
        <tr>
            <td>{{ employee.empNo }}</td>
            <td>{{ employee.firstName }}</td>
            <td>{{ employee.lastName }}</td>
            <td>{{ employee.birthDate|date('M j Y') }}</td>
            <td>{{ employee.gender }}</td>
            <td>{{ employee.hireDate|date('M j Y') }}</td>
        </tr>
       {% endfor %}
</table>

假设$ name是格式正确的字符串,是否有人知道PaginatorAdapter对象内部的查询内容?我试过var_dump它,但查询是一个私有参数,并没有get方法(当然)。

0 个答案:

没有答案