Làm cách nào để thực hiện tìm kiếm nhiều bộ lọc trong laravel 8?

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

  1. 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ụ

  2. 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:filter 
0, 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:filter 
2 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:filter 
4 và
$ php artisan make:filter 
5 trên db, chỉ cần thêm mệnh đề
$ php artisan make:filter 
6

$ php artisan make:filter 
0

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:filter 
7

$ php artisan make:filter 
2

Cập nhật bộ điều khiển của bạn

$ php artisan make:filter 
3

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:filter 
9. 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:filter 
6

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:filter 
7

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 đề

Làm cách nào để áp dụng nhiều bộ lọc trong laravel?

Bạn có hai lựa chọn. .
HOẶC sử dụng orWhere[]. Kiểu mẫu. truy vấn[]->where[[]]->orWhere[[]]->get[];
AND using 2nd array : Model::query[]->where[[['column1' , '!=' , ' value1'] , ['column2' , '=' , 'value2'] , ['column3' , '

Chủ Đề