Laravel Filters là một gói dựa trên video Laracasts được thực hiện bởi JeffreyWay. Gói này cho phép lọc các mô hình hùng hồn một cách rõ ràng và đơn giản
Cài đặt
Cài đặt gói qua Composer
$ composer require tiagomichaelsousa/laravelfilters
Gói cước sẽ tự động đăng ký nhà cung cấp dịch vụ
Tùy chọn, xuất bản tệp cấu hình nếu bạn muốn thay đổi bất kỳ giá trị mặc định nào
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"
Cách sử dụng
Tạo bộ lọc
$ php artisan make:filter
Lệnh này sẽ tạo một lớp bộ lọc mới trong không gian tên được xác định trên tệp cấu hình
Cập nhật Mô hình Eloquent của bạn
Các mô hình của bạn nên sử dụng đặc điểm Có thể lọc, có hai phạm vi
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"2 và
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"3
use tiagomichaelsousa\LaravelFilters\Traits\Filterable; class User extends Authenticatable { use Filterable; }
Phương thức
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"2 nhận trình tạo truy vấn và thể hiện của lớp chịu trách nhiệm về các phương thức lọc
Phương pháp
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"3 hoạt động như một người trợ giúp. Nó xác minh xem yêu cầu có chuỗi truy vấn
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"6 hay không và nếu có, nó sẽ trả về phản hồi có phân trang, nếu không, nó sẽ trả về dữ liệu
Tạo bộ lọc của bạn
Khi bạn đưa ra yêu cầu tới một điểm cuối, lớp
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"7 [mà
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"8 mở rộng từ đó] sẽ xác minh xem có bất kỳ phương thức nào có tên mà bạn đã gửi trong chuỗi truy vấn yêu cầu hay không
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"9 đi kèm với phương thức tìm kiếm mặc định mà bạn có thể xóa nếu muốn. Khi bạn đưa ra yêu cầu đối với
$ php artisan make:filter0, lớp
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"7 sẽ gọi phương thức tìm kiếm vì khóa
$ php artisan make:filter2 có trong cả yêu cầu và lớp
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"8
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"6
Phương thức tìm kiếm áp dụng các truy vấn cho phiên bản trình tạo. Như đã nói, bạn có thể kết hợp nhiều mệnh đề. Ví dụ: nếu bạn muốn phương thức tìm kiếm lọc dữ liệu từ các trường
$ php artisan make:filter4 và
$ php artisan make:filter5 trên db, chỉ cần thêm mệnh đề
$ php artisan make:filter6
$ php artisan make:filter0
Nếu bạn muốn thêm nhiều bộ lọc hơn, chỉ cần thêm một phương thức mới vào lớp, đặt logic cho bộ lọc và gửi nó qua chuỗi truy vấn yêu cầu
Bạn cũng có thể lọc dữ liệu thông qua các mối quan hệ hùng hồn. Ví dụ: lọc người dùng từ mã quốc gia
$ php artisan make:filter7
$ php artisan make:filter2
Cập nhật bộ điều khiển của bạn
$ php artisan make:filter3
Phương thức
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"2 có thể được gọi trong mọi trường hợp của mô hình sử dụng Đặc điểm
$ php artisan make:filter9. Vì vậy, hãy tưởng tượng rằng bạn có một Cuộc họp mô hình và Cuộc họp này có nhiều người dùng. Bạn có thể lọc người dùng khỏi Cuộc họp theo cách này
$ php artisan make:filter6
Một bộ lọc cũng có thể được khởi tạo bằng cách cung cấp một mảng kết hợp
$ php artisan make:filter7
Thay đổi nhật ký
Vui lòng xem nhật ký thay đổi để biết thêm thông tin về những thay đổi gần đây
thử nghiệm
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"0
Với phạm vi kiểm tra
php artisan vendor:publish --provider="tiagomichaelsousa\LaravelFilters\LaravelFiltersServiceProvider" --tag="config"1
Đóng góp
Xin vui lòng xem đóng góp. md để biết chi tiết và một todolist
Bảo vệ
Nếu bạn phát hiện ra bất kỳ vấn đề nào liên quan đến bảo mật, vui lòng gửi email cho tác giả thay vì sử dụng trình theo dõi vấn đề