Sonata Admin +显示列表视图中的所有项目(不是每页)

问题描述 投票:1回答:3

Sonata Admin Bundle中,您有一个列表视图,您可以在其中添加要在表格中显示的字段。

在表格的底部,您可以获得结果和分页的数量。我喜欢每页的分页和项目。但我想在页面加载时显示所有项目。因此,所有项目都显示在页面上,但您仍然可以选择减少每页的结果数量。

enter image description here

问题是我对如何做到这一点没有任何线索。有人可以让我上路吗?

php symfony pagination sonata-admin sonata
3个回答
2
投票

在SonataAdmin 3.x中默认拥有所有行,您需要执行以下操作:

1 - 将_per_page = All添加到$datagridValues

 protected $datagridValues = array(
    '_sort_order' => 'ASC',
    ...
    '_per_page' => 'All',
);

2 - 将所有内容添加到$ perPageOptions:

protected $perPageOptions = [16, 32, 64, 128, 192, 'All'];

3 - 将$ maxPerPage设置为All:

protected $maxPerPage = 'All';

1
投票

实际上,有可能做到。你有EntityAdmin

a)定义可能的“每页结果”值列表。

现在是protected $perPageOptions = array(16, 32, 64, 128, 192);

因此,最简单的解决方案就是提供一个新的非常大的数字,例如

protected $perPageOptions = array(16, 32, 64, 128, 192, 1000000);

但如果你想真正做到“全部”,那么你必须这样做

protected $perPageOptions = array(16, 32, 64, 128, 192, 'All');

然后

2)重新定义一个方法EntityAdmin::buildDatagrid()来处理'All'$filterParameters['_per_page']


0
投票
class YourAdmin extends AbstractAdmin
{
    protected $perPageOptions = [64, 128, 256, 'All'];

    protected $datagridValues = [
        '_per_page' => 'All',
    ];

    protected $maxPerPage = 'All';

    ...
}

如果你发现$ maxPerPage变量是奇怪的或多余的,请问@author Thomas Rabaix thomas.rabaix在sonata-project dot org

© www.soinside.com 2019 - 2024. All rights reserved.