Yajra datatables tìm kiếm theo cột

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

Chủ Đề