Làm cách nào để thêm sort=votes vào mỗi liên kết phân trang trong Laravel?

Laravel frammework có một hệ thống phân trang được tích hợp với trình tạo truy vấn và Eloquent ORM, đồng thời cung cấp một hệ thống phân trang dễ sử dụng cho các kết quả cơ sở dữ liệu

Kết quả trình tạo truy vấn phân trang

Cách đơn giản nhất để phân trang kết quả cơ sở dữ liệu là sử dụng phương thức paginate[] trên trình tạo truy vấn hoặc truy vấn Eloquent.
Phương thức paginate[] nhận một đối số. số mục bạn muốn hiển thị "trên mỗi trang". Sau đó, nó sẽ tự động đặt giới hạn và độ lệch phù hợp dựa trên trang hiện tại.
Trang hiện tại có kết quả phân trang được phát hiện bởi giá trị của đối số chuỗi truy vấn trên yêu cầu HTTP, được tự động chèn vào các liên kết phân trang.

- Ví dụ về bộ điều khiển hiển thị 20 mục trên mỗi trang

paginate[20];

    return view['pages.index', ['pages'=>$pages]];
  }
}
- Bạn có thể gọi paginate[] sau khi thiết lập các tham số khác trên truy vấn, chẳng hạn như mệnh đề where[] hoặc DB. thô[].
$pages = DB::table['table_name']->where['visits', '>', 100]->paginate[20];

$pages = DB::table['table_name']->select[DB::raw['*, DATE_FORMAT[dtreg, "%Y-%m-%d"] as dtreg']]->paginate[20];

Phân trang kết quả hùng hồn

Bạn cũng có thể phân trang các truy vấn Eloquent. Cú pháp gần giống với kết quả của trình tạo truy vấn phân trang.
$users = App\User::paginate[20];

$users = User::where['votes', '>', 100]->paginate[20];

Hiển thị kết quả phân trang

Tập hợp kết quả với dữ liệu được trả về bởi phương thức paginate[] có thể được lặp lại dưới dạng một mảng, [ví dụ với foreach[]].
Để hiển thị các liên kết phân trang được tạo tự động, hãy sử dụng phương thức $pages->links[] [Ở đây, $pages là đối tượng được phương thức paginate[] trả về].
Bạn có thể hiển thị kết quả và hiển thị các liên kết trang bằng mẫu Blade.

@foreach[$pages as $page] {{ $page->id }} - {{ $page->title }} @endforeach

{{ $pages->links[] }}
- Phương thức $pages->links[] trả về một
    danh sách với các liên kết phân trang, tương thích với khung CSS Bootstrap

    phương thức SimplePaginate[]

    Nếu bạn chỉ cần hiển thị các liên kết "Tiếp theo" và "Trước đó" đơn giản trong chế độ xem phân trang của mình [không có liên kết cho mỗi số trang], bạn có thể sử dụng phương thức simplePaginate[] để thực hiện một truy vấn hiệu quả hơn.
    //with query builder
    $users = DB::table['users']->simplePaginate[20];
    //or
    $users = DB::table['users']->where['votes', '>', 100]->simplePaginate[20];
    
    //with Eloquent
    $users = User::simplePaginate[20];
    //or
    $users = User::where['votes', '>', 100]->simplePaginate[20];
    

    Tùy chỉnh URI của Paginator

    Nếu bạn muốn trình phân trang tạo các liên kết như. //ví dụ. com/custom/url?page=N, sử dụng phương thức withPath[], với chuỗi "custom/url" làm đối số.
    Route::get['pages', function[]{
      $pages = DB::table['table_name']->paginate[20];
    
      $pages->withPath['custom/url'];
      //
    }];
    
    - Sau đó, sử dụng {{ $pages->links[] }} trong chế độ xem của bạn

    Để nối các chuỗi vào mỗi liên kết phân trang, hãy sử dụng phương thức appends[].
    - Ví dụ: để thêm "sort=votes" vào mỗi liên kết phân trang, bạn có thể sử dụng đoạn mã sau.

    {{ $pages->appends[['sort' => 'votes']]->links[] }}

    Nếu bạn muốn thêm một "đoạn hàm băm" vào các URL của trình phân trang, bạn có thể sử dụng phương thức fragment[].
    - Ví dụ: để thêm '#bip' vào cuối mỗi liên kết phân trang, hãy sử dụng mã sau.

    {{ $pages->fragment['bip']->links[] }}

    Phương thức phiên bản Paginator

    Mỗi cá thể phân trang [được trả về bởi phương thức paginate[]] cung cấp thông tin phân trang bổ sung thông qua các phương thức sau
    • count[] - trả về số lượng mục trong tập kết quả hiện tại
    • currentPage[] - trả về số chỉ mục của trang hiện tại
    • firstItem[] - số chỉ mục của mục đầu tiên trong trang hiện tại
    • hasMorePages[] - Đúng nếu có trang tiếp theo, ngược lại Sai
    • lastItem[] - số chỉ mục của mục cuối cùng trong trang hiện tại
    • lastPage[] - trả về số chỉ mục của trang cuối cùng [Không khả dụng khi sử dụng SimplePaginate[]]
    • nextPageUrl[] - URL của trang tiếp theo. NULL nếu không có trang tiếp theo
    • perPage[] - số mục trên mỗi trang
    • trướcPageUrl[] - URL của trang trước. NULL nếu không có trang trước
    • tổng [] - tổng số mục [Không khả dụng khi sử dụng SimplePaginate []]
    • url[$nr] - URL của trang phân trang có chỉ mục là $nr

    Đối tượng kết quả phân trang dưới dạng JSON

    Để trả về kết quả của phương thức paginate[] ở định dạng JSON, bạn có thể sử dụng phương thức toJson[].
    public function index[]{
      $pages = DB::table['table_name']->paginate[15];
    
      return $pages->toJson[];
    }
    
    JSON từ trình phân trang sẽ bao gồm thông tin meta như tổng số, trang hiện tại, trang cuối cùng, v.v.
    Các đối tượng kết quả thực tế sẽ có sẵn thông qua khóa "dữ liệu" trong mảng JSON.
    - Đoạn mã trên sẽ trả về một JSON như thế này.
    {
      "total": 50,
      "per_page": 15,
      "current_page": 1,
      "last_page": 4,
      "next_page_url": "//coursesweb.net?page=2",
      "prev_page_url": null,
      "from": 1,
      "to": 15,
      "data":[
        {
          // Result Object of first item
        },
        {
          // Result Object of second item
        }
      ]
    }
    

    Tùy chỉnh chế độ xem liên kết phân trang

    Theo mặc định, mã HTML được trả về với các liên kết phân trang tương thích với khung CSS Bootstrap.
    Để xác định mã HTML của riêng bạn cho các liên kết này, hãy tạo tệp xem. tài nguyên/lượt xem/phân trang/mặc định. lưỡi. php bằng mã phân trang tùy chỉnh và chuyển tên chế độ xem ['phân trang. default'] làm đối số đầu tiên cho phương thức links[].
    - Ví dụ: đây là chế độ xem phân trang mặc định của Laravel.
    @if[$paginator->hasPages[]]
      
      {{-- Previous Page Link --}} @if[$paginator->onFirstPage[]]
    • «
    • @else
    • «
    • @endif {{-- Pagination Elements --}} @foreach[$elements as $element] {{-- "Three Dots" Separator --}} @if[is_string[$element]]
    • {{ $element }}
    • @endif {{-- Array Of Links --}} @if[is_array[$element]] @foreach[$element as $page => $url] @if[$page == $paginator->currentPage[]]
    • {{ $page }}
    • @else
    • {{ $page }}
    • @endif @endforeach @endif @endforeach {{-- Next Page Link --}} @if[$paginator->hasMorePages[]]
    • »
    • @else
    • »
    • @endif
    @endif
    - Tạo một tệp php. tài nguyên/lượt xem/phân trang/mặc định. lưỡi. php và sao chép mã ở trên vào tệp đó. Sửa đổi "phân trang/mặc định. lưỡi. php" theo cách bạn muốn.
    - Sau đó, hiển thị các liên kết phân trang bằng mã này.

    {{$results->links['phân trang. mặc định']}}

    Bạn cũng có thể chuyển dữ liệu đến chế độ xem phân trang

    {{$results->links['phân trang. mặc định', ['tên'=>$value]]}}

    Một cách khác để tùy chỉnh chế độ xem phân trang là xuất chúng sang thư mục resource/views/vendor/ bằng cách sử dụng nhà cung cấp. xuất bản lệnh

    nhà cung cấp thủ công php. xuất bản --tag=laravel-pagination

    Lệnh này sẽ đặt các dạng xem trong thư mục "resources/views/vendor/pagination/". Sau đó, chỉnh sửa "mặc định. lưỡi. php" để sửa đổi HTML phân trang.
    - "Mặc định đơn giản. lưỡi. php" dành cho các liên kết phân trang được trả về bởi phương thức simplePaginate[].

    - Tài liệu. Laravel - Cơ sở dữ liệu. phân trang

Làm cách nào để sắp xếp phân trang trong laravel?

Laravel - Ví dụ sắp xếp cột với phân trang .
Bước 1. Cài đặt ứng dụng Laravel. .
Bước 2. Cài đặt Gói kyslik/có thể sắp xếp theo cột. .
Bước 3. Tạo bảng sản phẩm và mô hình. .
Bước 4. Thêm tuyến đường. .
Bước 5. Tạo bộ điều khiển ProductController. .
Bước 6. Tạo sản phẩm Xem File

Làm cách nào để tùy chỉnh các liên kết phân trang trong laravel?

Để tùy chỉnh các liên kết phân trang của Laravel, bạn cần thực hiện các bước sau. .
Tạo một ứng dụng Laravel
Tạo một cơ sở dữ liệu và kết nối với nó
Cơ sở dữ liệu hạt giống với dữ liệu giả
Xem tất cả người dùng
thêm phân trang
Xuất bản chế độ xem phân trang
Chỉnh sửa và sử dụng

Làm cách nào để thêm phân trang trong API laravel?

Trong trường hợp này, hãy xác định rằng chúng tôi muốn hiển thị 15 mục trên mỗi trang. .
không gian tên Ứng dụng\Http\Bộ điều khiển; .
.
Tuyến đường. get['người dùng', hàm [] {.
Tuyến đường. get['người dùng', hàm [] {.
{.
sử dụng Illuminate\Pagination\Paginator;.
sử dụng Illuminate\Pagination\Paginator;

Làm cách nào để sử dụng phân trang con trỏ trong laravel?

Phân trang con trỏ . Phương thức này trả về một thể hiện của Illuminate\Pagination\CursorPaginator. người dùng $ = DB. table['users']->orderBy['id']->cursorPaginate[15];create a cursor based paginator instance via the cursorPaginate method offered by the query builder. This method returns an instance of Illuminate\Pagination\CursorPaginator : $users = DB::table['users']->orderBy['id']->cursorPaginate[15];

Chủ Đề