Php Symfony 2.1.4-knpPaginator没有在点击<;th>;元素
我的控制器正在使用条令并调用knp分页包的分页方法,代码如下Php Symfony 2.1.4-knpPaginator没有在点击<;th>;元素,php,symfony,doctrine-orm,symfony-2.1,Php,Symfony,Doctrine Orm,Symfony 2.1,我的控制器正在使用条令并调用knp分页包的分页方法,代码如下 $em = $this->get('doctrine.orm.entity_manager'); $query = $em->createQueryBuilder()->add('select', 'a') ->add('from', 'Acme\TaskBundle\Entity\Product a')->getQuery()->getResult();
$em = $this->get('doctrine.orm.entity_manager');
$query = $em->createQueryBuilder()->add('select', 'a')
->add('from', 'Acme\TaskBundle\Entity\Product a')->getQuery()->getResult();
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query,
$this->get('request')->query->get('page', 1)/*page number*/,
5/*limit per page*/
);
return $this->render('AcmeTaskBundle:Default:index.html.twig', array(
'pagination' => $pagination,
));
视图只是表示分页数据
<table>
<tr>
{# sorting of properties based on query components #}
<th>{{ pagination.sortable('Id', 'a.id')|raw }}</th>
<th>{{ pagination.sortable('Name', 'a.name')|raw }}</th>
<th>{{ pagination.sortable('Price', 'a.price')|raw }}</th>
<th>{{ pagination.sortable('Description', 'a.description')|raw }}</th>
</tr>
{# table body #}
{% for Product in pagination %}
<tr {% if loop.index is odd %}class="color"{% endif %}>
<td>{{ Product.id }}</td>
<td>{{ Product.name }}</td>
<td>{{ Product.price }}</td>
<td>{{ Product.description }}</td>
</tr>
{% endfor %}
</table>
{# display navigation #}
<div class="navigation">
{{ pagination.render()|raw }}
</div>
我正在获取分页的所有表数据,但无法在单击元素时对数据进行排序。
分页器配置为
protected $defaultOptions = array(
'pageParameterName' => 'page',
'sortFieldParameterName' => 'sort',
'sortDirectionParameterName' => 'direction',
'distinct' => true
);
我已经得到了答案。
首先,我从paginator视图中获取post数据,如下所示
$postData = $request->query->all();
然后以查询字符串的形式传递数据,如
$dql= 'select a from AcmeTaskBundle:Product a order by ORDER BY $postData[sort] $postData[direction]';
这显示查询异常“无效参数编号:绑定变量的数量与令牌的数量不匹配”Hi@aligarian!我也有同样的问题。你解决了吗?谢谢我还认为,作为kibao,这是因为我们没有将$query传递给paginate,而是传递结果。但和您一样,如果我只将查询传递给分页函数,则会出现相同的错误:“无效参数编号:绑定编号…”
$dql= 'select a from AcmeTaskBundle:Product a order by ORDER BY $postData[sort] $postData[direction]';