【问题标题】:How to set default Data Table Page Length to 100 in complete project?如何在完整项目中将默认数据表页长设置为 100?
【发布时间】:2019-10-04 09:39:53
【问题描述】:
我的项目中有一个大型报告部分,并且有 100 个使用数据表的报告,以及一些自定义数据表功能。现在我的客户想要:-
所有数据表报告的默认页长将从 10 增加到 100 ,默认情况下应适用于所有现有数据表和新数据表。
数据表搜索也应该被缓存(即,如果我过滤一个城市名称为 X 的记录,它返回 10 条记录,现在我单击其中任何一条的详细信息打开一个新页面。)他是什么想要的正是在这里(如果他从详情页返回,之前的10条搜索记录列表应该会出现,尽管是完整的记录列表。)
希望我的疑问很清楚,对此的任何建议和帮助将不胜感激。
【问题讨论】:
标签:
php
laravel
datatable
【解决方案1】:
当你使用Yajra Datatables时,我会回答这个问题。
第一个问题:
您可以将页长编号存储在数据库中的某些“设置”表中,这些表可以由管理员进行管理。并为所有页面获取。你也可以使用 Laravel 缓存来获得它,这样你就不需要每次都从数据库中检索。相反,您将从缓存中检索它,这将加速您的应用程序。
现在假设你已经得到了那个号码like this, using off. doc.:
$page_length = Cache::get('page_length');
您可以创建一些从 Controller 扩展的 GeneralController,然后在构造函数中您可以编写它并像这样为所有刀片共享它:
View::share('page_length', $page_length); // Illuminate Support Facade
或者您可以在“受保护的 $page_length = null;”中传递 $page_length,在 GeneralController 的构造函数中初始化,然后在从 GeneralController 扩展的其他控制器中使用它。
所以现在你可以在刀片中获得它。你可以这样使用
var YajraDataTable = $('#yajra_datatable').DataTable({
"pageLength": parseInt("{{ $page_length }}"),
第二个问题我稍后会用实际例子来回答。