Trong bài viết này, tôi muốn nói về thư viện bảng dữ liệu yajra/laravel” cung cấp cho chúng ta rất nhiều tiện ích khi tạo bảng. Với thư viện này, chúng tôi loại bỏ các truy vấn cơ sở dữ liệu phức tạp, thao tác phân trang và rắc rối khi tìm kiếm thông qua dữ liệu
Trước hết, nếu bạn chưa từng làm điều đó trước đây và bạn đang phàn nàn về công việc chậm chạp của nhà soạn nhạc, hãy bắt đầu bằng cách chuyển sang nhà soạn nhạc 2. 0 phiên bản. Hãy chạy mã bên dưới từ màn hình đầu cuối của bạn
#/bin/bash _> composer self-update
Hãy tiếp tục dự án của chúng ta bằng cách thêm thư viện. Đối với dự án này, tôi sẽ sử dụng Laravel 8. phiên bản x. Nhưng thư viện đã được hỗ trợ đầy đủ kể từ Laravel 4. 2. Hãy bắt đầu
composer require yajra/laravel-datatables:^1.5
Chúng tôi đang thêm thư viện vào dự án của mình
* Ghi chú. Bạn có thể sử dụng Html, nút, v.v. trên dự án. Tôi đã cài đặt tất cả các gói như tôi sẽ giải thích trong phần bổ trợ. Cần có phần mở rộng ext-zip PHP cho thiết lập này. Bạn có thể sử dụng phiên bản kernel nếu muốn
composer require yajra/laravel-datatables-oracle:"~9.0"
Hãy tạo liên kết dịch vụ của chúng tôi
# config/app.php'providers' => [ // ... Yajra\DataTables\DataTablesServiceProvider::class, Yajra\DataTables\HtmlServiceProvider::class, Yajra\DataTables\ButtonsServiceProvider::class, Yajra\DataTables\EditorServiceProvider::class,],
Để chuyển cài đặt và tệp, chúng tôi cần xuất bản
php artisan vendor:publish --tag=datatables php artisan vendor:publish --tag=datatables-buttons
Bây giờ chúng ta có thể bắt đầu sử dụng thư viện của mình
Trước khi bắt đầu sử dụng thư viện, tôi sẽ sử dụng “factory design pattern” để quản lý các phần phụ thuộc dễ dàng hơn. Bạn có thể có thêm thông tin chi tiết về chủ đề này bằng cách nghiên cứu trước các mẫu thiết kế. Trước tiên, hãy tạo các thư mục của chúng tôi. Nó sẽ giống như thế này
|_ App |__ Example |--- Business |---- Abstraction |---- Concrete |--- DataAccess |---- Abstraction |---- Concrete
Thay vì Ví dụ, bạn có thể tự đặt tên. Ví dụ, chúng ta sẽ tạo một danh sách Khách hàng. Trước hết, chúng tôi tạo một mô hình, di chuyển, nhà máy và trình gieo hạt cho nội dung demo
php artisan make:model Customers -mcsf-m : migration -c : controller -s : seeder -f : factory
tệp di chuyển
Schema::create['customers', function [Blueprint $table] { $table->id[]; $table->string['name']; $table->string['email']; $table->string['phone']; $table->string['slug']->unique[]; $table->text['address']; $table->softDeletes[]; $table->timestamps[]; }];
tệp gieo hạt
________số 8_______
nhà máy dosyası
$name = $this->faker->name; return [ 'name' => $name, 'email' => $this->faker->unique[]->safeEmail, 'phone' => $this->faker->phoneNumber, 'slug' => Str::slug[ $name ], 'address' => $this->faker->address ];
và sau đó sau khi nhập thông tin cơ sở dữ liệu trên. env
composer require yajra/laravel-datatables:^1.5
0
Bằng cách viết, chúng tôi sẽ thêm 500 khách hàng demo vào cơ sở dữ liệu của chúng tôi. Bây giờ chúng ta có thể thực hiện tất cả các thao tác liên quan đến thư viện
Trước tiên, hãy tạo tệp ICustomersService trong “Kinh doanh / Trừu tượng”, sau đó tạo tệp có tên là Trình quản lý khách hàng trong “Kinh doanh / Bê tông”
Hãy chỉnh sửa tệp ICustomerService như sau
composer require yajra/laravel-datatables:^1.5
1Hãy tổ chức bên trong tệp CustomerManager như sau
composer require yajra/laravel-datatables:^1.5
2Tiếp theo, hãy tạo hai tệp có tên ICustomersDataService và ClientDataManager trong lớp Dữ liệu. Hãy sắp xếp chúng như sau
composer require yajra/laravel-datatables:^1.5
3
Bây giờ, hãy xác định tuyến đường mà chúng tôi liệt kê các khách hàng
composer require yajra/laravel-datatables:^1.5
4Bây giờ chúng ta có thể bắt đầu thêm vào Yajra
composer require yajra/laravel-datatables:^1.5
5Trước hết, tập tin của chúng tôi sẽ trông như thế này
composer require yajra/laravel-datatables:^1.5
6Tôi sẽ tóm tắt kết nối với Ajax vì tôi sẽ thực hiện Kết xuất phía máy chủ. Trước hết, chúng tôi sẽ phải thực hiện một số điều chỉnh. Chúng tôi tổ chức các tập tin như sau
composer require yajra/laravel-datatables:^1.5
7
Hãy giải thích nội dung của nó
composer require yajra/laravel-datatables:^1.5
8Nếu chúng tôi muốn thêm một cột ngoài dữ liệu hiện có của mình, chúng tôi sẽ thêm phần này bằng addColumn. Tham số đầu tiên là đặt tên và tham số thứ hai đề cập đến nội dung của dữ liệu chúng tôi sẽ thêm vào cột này
composer require yajra/laravel-datatables:^1.5
9Đây là phần tạo thành mẫu của bảng của chúng tôi
composer require yajra/laravel-datatables-oracle:"~9.0"
0
composer require yajra/laravel-datatables-oracle:"~9.0"
1Bây giờ hãy sắp xếp trong Bộ điều khiển. Trước hết, hãy tạo màn hình View của chúng ta
composer require yajra/laravel-datatables-oracle:"~9.0"
2Điều bạn nên chú ý ở đây là chúng ta đang gọi hàm kết xuất trên lớp CustomerDataTable mà chúng ta thêm dưới dạng phụ thuộc thay vì chế độ xem trả về [] mà chúng ta thường sử dụng. Bằng cách này, công chúng/ứng dụng/khách hàng/danh sách. lưỡi. php nói rằng nên chạy. Tôi chỉ thêm những phần liên quan đến dữ liệu vào lưỡi kiếm. Bạn sắp xếp nó theo chủ đề của bạn
composer require yajra/laravel-datatables-oracle:"~9.0"
3Khi chúng ta truy cập /customers/list qua trình duyệt sẽ gặp lỗi như thế này
Laravel – Lỗi bộ định tuyến dữ liệu Yajra
Lý do của lỗi này là nó không thể truy cập tuyến đường chúng tôi đã đặt trong ajax. Bây giờ chúng ta sẽ chỉnh sửa phần đó. Chúng tôi đến phần mà công việc của chúng tôi đơn giản nhất, chúng tôi sắp xếp các tuyến/web của thư viện. php như sau
composer require yajra/laravel-datatables-oracle:"~9.0"
4
Bây giờ chúng tôi đang sắp xếp trong lớp kinh doanh
composer require yajra/laravel-datatables-oracle:"~9.0"
5Tiếp theo là chỉnh sửa lớp Dữ liệu
composer require yajra/laravel-datatables-oracle:"~9.0"
6
Như bạn có thể thấy, việc thêm giới hạn cho truy vấn để phân trang và truyền số trang hoàn toàn giúp chúng tôi không phải viết các biểu thức chẳng hạn như đối với từ được tìm kiếm, chúng tôi chỉ cần gửi nó đến thư viện mô hình của mình, phần còn lại sẽ lo. ] Hãy làm mới trang của chúng tôi và xem kết quả
composer require yajra/laravel-datatables-oracle:"~9.0"
7
chúng tôi đã nhận lỗi. Lý do cho điều này là chúng tôi đã không chỉ định lớp nào mà các giao diện chúng tôi sử dụng trong lớp Công việc và Dữ liệu phụ thuộc vào. Trong đó
composer require yajra/laravel-datatables-oracle:"~9.0"
8Sau đó, chúng tôi xác định nhà cung cấp cho hệ thống
composer require yajra/laravel-datatables-oracle:"~9.0"
9và sau đó chúng tôi tạo kết nối với phần nhà cung cấp. Để biết chi tiết, bạn có thể xem lại phần của nhà cung cấp từ tài liệu của Laravel
# config/app.php'providers' => [ // ... Yajra\DataTables\DataTablesServiceProvider::class, Yajra\DataTables\HtmlServiceProvider::class, Yajra\DataTables\ButtonsServiceProvider::class, Yajra\DataTables\EditorServiceProvider::class,],0
Bằng cách này, chúng tôi xóa các định nghĩa và bộ đệm được tạo tự động sau khi chúng được liên kết với nhau