Как установить длину страницы таблицы данных по умолчанию равной 100 в завершенном проекте? - PullRequest
0 голосов
/ 04 октября 2019

У меня есть большой раздел отчета в моем проекте, и у меня есть сотни отчетов, использующих таблицу данных, с некоторыми настраиваемыми функциями таблицы данных. Теперь мой клиент хочет: -

  1. Длина страницы по умолчанию для всех отчетов таблиц данных должна быть увеличена с 10 до 100, что должно применяться по умолчанию ко всем существующим таблицам данных, а также к новым.

  2. Поиск в таблице данных также должен кэшироваться (т. Е. Если я отфильтрую запись с именем города X, он вернул 10 записей, теперь я нажимаю детали любой из них, которая открывает новую страницу). .) то, что он хочет, находится именно здесь (если он вернется со страницы сведений, должен появиться предыдущий список записей поиска из 10, несмотря на полный список записей.)

Надеюсь, я былс моими запросами, любые предложения и помощь по этому вопросу будут высоко оценены.

Ответы [ 2 ]

1 голос
/ 04 октября 2019

Предлагаю использовать Yajra DataTable Перейдите по ссылке для понимания. Это Демонстрационная ссылка , которая поможет.

Yajra DataTable - это таблица данных ajax, которая предлагает количество записей на страницу и поиск. Даже я тоже использую ее.

0 голосов
/ 04 октября 2019

Я отвечу на эти вопросы, когда вы используете Yajra Datatables .

Для первого вопроса:

Вы можете сохранить длину страницыномер в вашей БД, в некоторой таблице «настроек», которой можно управлять от администраторов. И получите это для всех страниц. Также вы можете получить это, используя Laravel Cache, и с этим вам не нужно каждый раз получать данные из БД. Вместо этого вы получите это из кешей, что ускорит ваше приложение. Теперь предположим, что вы уже получили это число вот так, используя off. doc. :

$page_length = Cache::get('page_length');

Вы можете создать некоторый GeneralController, который будет расширяться от Controller, затем в конструкторе вы можете написать это и поделиться этим для всех блейдов, как это:

View::share('page_length', $page_length); // Illuminate Support Facade

Или вы можете передать этот $ page_length в некоторый «protected $ page_length = null;», init в конструкторе GeneralController, и использовать его в других ваших контроллерах, которые выходят из GeneralController.

Так что теперь вы можете получить это вножи. Вы можете использовать это следующим образом

var YajraDataTable = $('#yajra_datatable').DataTable({
            "pageLength": parseInt("{{ $page_length }}"),

Ответ на второй вопрос, который я напишу на реальном примере чуть позже.

...