Đội Spatie vẫn cháy hàng với các gói mới. Tuần này họ đã phát hành một cái khác có tên là Laravel Searchable, được tạo chủ yếu bởi AlexVanderbist. Tôi đã tự mình thử và có thể cho bạn xem bản demo, cùng với ý kiến của tôi
Laravel có thể tìm kiếm là gì
Gói Spatie làm cho việc tìm kiếm trong các mô hình trở thành một nhiệm vụ dễ dàng mà không cần phụ thuộc bên ngoài
Ưu điểm chính, như tôi đã thử nghiệm, là khả năng thực hiện tìm kiếm lớn trong tất cả cơ sở dữ liệu của dự án, chỉ định nhiều hơn một mô hình để tìm kiếm trong
Đây là một mã tìm kiếm ví dụ từ Bộ điều khiển
$searchResults = [new Search[]]
->registerModel[User::class, 'name']
->registerModel[BlogPost::class, 'title']
->perform['john'];
Trông khá đơn giản và dễ đọc phải không?
Bạn sẽ nói rằng không cần gói "tìm kiếm" khác khi chúng ta có Laravel Scout, Algolia, ElasticSearch và những thứ khác, phải không?
- Sự khác biệt chính với Scout là cái này không có phụ thuộc bên ngoài
- laravel-searchable không cố gắng thay thế Scout. Cả hai gói đều có vị trí của chúng. Đưa ra quyết định của riêng bạn những gì bạn cần trong dự án của bạn
laravel-searchable không cố gắng thay thế Scout. Cả hai gói đều có vị trí của chúng. Đưa ra quyết định của riêng bạn những gì bạn cần trong dự án của bạn
– Freek Van der Herten [@freekmurze] ngày 27 tháng 12 năm 2018
Dự án nhỏ ví dụ. sự chuẩn bị
Để kiểm tra gói, tôi đã tạo một Laravel 5 mới. 7 [mã sẽ có sẵn trên GitHub - liên kết ở cuối bài viết] với hai bảng cơ sở dữ liệu. danh mục và công ty
Schema::create['categories', function [Blueprint $table] {
$table->increments['id'];
$table->string['name'];
$table->timestamps[];
}];
Schema::create['companies', function [Blueprint $table] {
$table->increments['id'];
$table->string['name']->nullable[];
$table->unsignedInteger['category_id'];
$table->foreign['category_id']->references['id']->on['categories'];
$table->timestamps[];
}];
Ngoài ra, đã thêm một số dữ liệu cho cả hai bảng, sử dụng make. auth để tạo một mẫu Bootstrap đơn giản và kết thúc với danh sách các công ty này