Php 奏鸣曲管理&x2B;在列表视图中显示所有项目(不是每页)
在中,您有一个列表视图,可以在其中添加要在表中显示的字段 在表的底部有结果数和分页。我喜欢每页的页码和项目。但是我想显示页面加载时的所有项目。因此,所有项目都显示在页面上,但您仍然可以选择减少每页的结果数Php 奏鸣曲管理&x2B;在列表视图中显示所有项目(不是每页),php,symfony,pagination,sonata-admin,sonata,Php,Symfony,Pagination,Sonata Admin,Sonata,在中,您有一个列表视图,可以在其中添加要在表中显示的字段 在表的底部有结果数和分页。我喜欢每页的页码和项目。但是我想显示页面加载时的所有项目。因此,所有项目都显示在页面上,但您仍然可以选择减少每页的结果数 问题是我不知道该怎么做。有人能让我上路吗?事实上,这是可能的。 您的EntityAdmin中有 a) 定义可能的“每页结果”值列表 现在是了 protected$perPageOptions=array(16,32,64,128,192) 因此,最简单的解决方案可能是,以一个新的非常大的数字
问题是我不知道该怎么做。有人能让我上路吗?事实上,这是可能的。 您的
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) 在SonatAdmin 3.x中重新定义一个方法EntityAdmin::buildDatagrid()
来处理$filterParameters[''''''''每页']
的'All'
值。要在默认情况下拥有所有行,您需要执行以下操作:
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设置为所有:
protected $maxPerPage = 'All';
如果您发现$maxPerPage变量奇怪或多余,请询问sonata project.org的@author Thomas Rabaix Thomas.Rabaix,这是否也会加载第一次加载页面上的所有行@nielsv这也会在第一次加载页面时加载所有行
class YourAdmin extends AbstractAdmin
{
protected $perPageOptions = [64, 128, 256, 'All'];
protected $datagridValues = [
'_per_page' => 'All',
];
protected $maxPerPage = 'All';
...
}