Bây giờ, hãy xem ví dụ về tìm kiếm tùy chỉnh trong bảng dữ liệu của laravel. Tôi muốn chia sẻ với các bạn bộ lọc tùy chỉnh bảng dữ liệu laravel yajra. Bài viết này đi vào chi tiết về mối quan hệ cột bộ lọc dữ liệu của laravel. bạn có thể thấy bảng dữ liệu tìm kiếm tùy chỉnh laravel. bạn sẽ làm những việc sau để lọc tùy chỉnh phía máy chủ dữ liệu laravel
Các bảng dữ liệu yajra của Laravel cung cấp tìm kiếm toàn cầu mặc định, trong tìm kiếm đó, nó sẽ tìm kiếm toàn bộ hàng của bảng. Nhưng nếu bạn chỉ cần thêm một cột cụ thể như đối với tìm kiếm ngày được tạo với công cụ chọn ngày hoặc trạng thái với danh sách thả xuống thì bạn phải triển khai tính năng lọc tùy chỉnh trong bảng dữ liệu của mình
Dưới đây tôi viết từng bước về cách thêm bộ lọc tìm kiếm tùy chỉnh với bảng dữ liệu laravel 6, laravel 7, laravel 8 và laravel 9. chỉ cần làm theo vài bước và bạn sẽ nhận được ví dụ đơn giản
Vì vậy, hãy bắt đầu với các ví dụ sau
Bước 1. Cài đặt Laravel
Đây là tùy chọn;
composer create-project laravel/laravel example-app
Bước 2. Cài đặt gói dữ liệu Yajra
Chúng tôi cần cài đặt gói trình soạn thảo có thể truy cập dữ liệu yajra để có thể truy cập dữ liệu, vì vậy bạn có thể cài đặt bằng lệnh sau
composer require yajra/laravel-datatables-oracle
Sau đó, bạn cần đặt nhà cung cấp và bí danh
.....
'providers' => [
....
Yajra\DataTables\DataTablesServiceProvider::class,
]
'aliases' => [
....
'DataTables' => Yajra\DataTables\Facades\DataTables::class,
]
.....
Bước 3. Tạo bản ghi giả
Trong bước này, chúng tôi sẽ tạo một số người dùng giả bằng tinker factory. Vì vậy, hãy tạo các bản ghi giả bằng lệnh dưới đây
php artisan tinker
User::factory[]->count[200]->create[]
Bước 4. Tạo tuyến đường
Ở bước này chúng ta cần tạo route cho datatables layout file và một route khác để lấy dữ liệu. vì vậy hãy mở các tuyến đường/web của bạn. php và thêm tuyến đường sau
tuyến đường/web. php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get['users', [UserController::class,'index']]->name['users.index'];
Bước 5. Tạo bộ điều khiển
Tại thời điểm này, bây giờ chúng ta nên tạo bộ điều khiển mới là UserController. bộ điều khiển này sẽ quản lý bố cục và nhận yêu cầu dữ liệu và trả về phản hồi, vì vậy hãy đặt nội dung dưới đây vào tệp bộ điều khiển
ứng dụng/Http/Bộ điều khiển/UserController. php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use DataTables;
use Illuminate\Support\Str;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index[Request $request]
{
if [$request->ajax[]] {
$data = User::latest[]->get[];
return Datatables::of[$data]
->addIndexColumn[]
->filter[function [$instance] use [$request] {
if [!empty[$request->get['email']]] {
$instance->collection = $instance->collection->filter[function [$row] use [$request] {
return Str::contains[$row['email'], $request->get['email']] ? true : false;
}];
}
if [!empty[$request->get['search']]] {
$instance->collection = $instance->collection->filter[function [$row] use [$request] {
if [Str::contains[Str::lower[$row['email']], Str::lower[$request->get['search']]]]{
return true;
}else if [Str::contains[Str::lower[$row['name']], Str::lower[$request->get['search']]]] {
return true;
}
return false;
}];
}
}]
->addColumn['action', function[$row]{
$btn = 'View';
return $btn;
}]
->rawColumns[['action']]
->make[true];
}
return view['users'];
}
}
Bước 6. Tạo Chế độ xem
Ở bước cuối cùng, hãy tạo người dùng. lưỡi. php[tài nguyên/lượt xem/người dùng. lưỡi. php] để bố trí và chúng tôi sẽ viết mã thiết kế ở đây và đặt đoạn mã sau
tài nguyên/lượt xem/người dùng. lưỡi. php
Laravel Datatables Custom Filter and Search Tutorial
Laravel Datatables Custom Filter and Search Tutorial
No Name Email Action
Chạy ứng dụng Laravel
Tất cả các bước đã được thực hiện, bây giờ bạn phải nhập lệnh đã cho và nhấn enter để chạy ứng dụng laravel