国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - laravel手動創建數組分頁的實現代碼

laravel手動創建數組分頁的實現代碼

2019-09-28 12:54promise PHP教程

這篇文章主要介紹了laravel手動創建數組分頁的實現代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文介紹了laravel手動創建數組分頁的實現代碼,分享給大家,具體如下:

laravel手動創建數組分頁的實現代碼

laravel分頁功能:

有幾種方法可以對數據進行分頁。最簡單的是在 [查詢語句構造器] 或 [Eloquent 查詢] 中使用 paginate 或 simplePaginate 方法。

paginate用法如下:

//控制器中
$users = DB::table('users')->paginate(15);
return view('user.index', ['users' => $users]);

//視圖中
{{ $users->links() }}

效果如下:

「上一頁」 「1」「2」「3」 「下一頁」

simplePaginate用法如下:

//控制器中
$users = User::where('votes', '>', 100)->simplePaginate(15);
return view('user.index', compact('users'));

//視圖中
{{ $users->links() }}

效果如下:

「上一頁」 「下一頁」

注意:

  1. 如果你只需要在分頁視圖中顯示簡單的「下一頁」和「上一頁」的鏈接,即不需要顯示每個頁碼的鏈接,更推薦使用 simplePaginate 方法來執行更高效的查詢。
  2. 目前,Laravel 無法高效執行使用 groupBy 語句的分頁操作。如果你需要在分頁結果集中使用 groupBy,建議你查詢數據庫并手動創建分頁器。

有時候可能會遇到這種情況,$dataA和$dataB是從數據庫取出的兩個不同的數據集合,需要同時將$dataA和$dataB分配到視圖并進行分頁展示,那這種情況怎么辦呢?

 

這種情況可以采用laravel數組分頁。

其實在laravel文檔中已經有寫如何自己使用分頁類去分頁了,但沒有 詳細說明。

手動創建分頁

如果你想手動創建分頁實例并且最終得到一個數組類型的結果,可以根據需求來創建 IlluminatePaginationPaginator 或者 IlluminatePaginationLengthAwarePaginator 實例來實現。

具體可以看IlluminatePaginationLengthAwarePaginator中的這段代碼:

public function __construct($items, $total, $perPage, $currentPage = null, array $options = [])
 {
  foreach ($options as $key => $value) {
   $this->{$key} = $value;
  }

  $this->total = $total;
  $this->perPage = $perPage;
  $this->lastPage = max((int) ceil($total / $perPage), 1);
  $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path;
  $this->currentPage = $this->setCurrentPage($currentPage, $this->pageName);
  $this->items = $items instanceof Collection ? $items : Collection::make($items);
 }

以下為具體實現代碼:

//控制器中
public function index(LiveService $liveService, Request $request)
 {
  //數據A
  $dataA = User::where('status', 1)->get()->toArray();
  //數據B
  $dataB = User::where('status', 2)->get()->toArray();
  $data = array_merge($dataA, $dataB);
  //當前頁數 默認1
  $page = $request->page ?: 1;
  //每頁的條數
  $perPage = 4;
  //計算每頁分頁的初始位置
  $offset = ($page * $perPage) - $perPage;
   //實例化LengthAwarePaginator類,并傳入對應的參數
  $data = new LengthAwarePaginator(array_slice($data, $offset, $perPage, true), count($data), $perPage,
   $page, ['path' => $request->url(), 'query' => $request->query()]);
  return view('admin.users.index', compact('data'));
 }

//視圖中
{{ $data->links() }}

以上基本就完成了數組分頁,大致流程就是控制器獲取到當前頁數,實例化LengthAwarePaginator類并傳入必要的參數,根據每頁的條數利用array_slice()方法獲取每頁要顯示的數據。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美午夜影院 | 亚洲色图在线播放 | 黄p在线看| 久久一区 | 欧美精品久久久 | 在线观看亚洲精品 | 久久精彩免费视频 | 欧美激情第1页 | 国产一区自拍视频 | 午夜色电影 | 亚洲精品久久久 | 欧美一区二区三区在线观看视频 | 中文在线一区二区 | 久久久午夜爽爽一区二区三区三州 | 欧美激情在线精品一区二区三区 | 米奇色网 | 亚洲成人精品久久 | 97在线观看视频 | 黄网站在线观看 | 久久精品中文 | 色乱码一区二区三区网站 | 日韩精品一区二区在线观看 | 欧美在线观看免费观看视频 | 91在线观看高清视频 | 这里有精品视频 | 国产精品国产a | 欧美亚洲一区二区三区 | 中文字幕一区在线观看视频 | 国内精品视频 | 欧美日韩专区 | 一区二区三区在线免费观看 | 自拍偷拍在线视频 | 亚洲香蕉视频 | 日韩三级视频 | 国产精品免费久久久久久久久久中文 | 亚洲免费观看视频 | 久久aⅴ乱码一区二区三区 一区二区精品视频 | 国产欧美精品 | 国产一区二区h | 黄色影片免费观看 | 午夜影院免费 |