Khi bạn đặt biểu mẫu tìm kiếm trong ứng dụng của mình, bạn cần sử dụng truy vấn like để nhận mẫu phù hợp. Truy vấn LIKE
được sử dụng trong mệnh đề WHERE
để tìm kiếm một mẫu cụ thể trong một cột. Bạn có thể sử dụng từ khóa THÍCH MySQL và ký tự đại diện % với mệnh đề where
Trong laravel, sử dụng phương pháp hùng biện whereLike[]
, bạn có thể triển khai laravel ở đâu như truy vấn tìm kiếm, laravel ở đâu như nhiều cột và bộ sưu tập laravel với vị trí như
ví dụ 1. Laravel nơi Like Query sử dụng với Eloquent Model
Bạn có thể sử dụng từ khóa THÍCH MySQL và ký tự đại diện % với mệnh đề where
Ví dụ sau đại diện, làm thế nào để sử dụng nó
public function index[]{
$users = User::where['name','LIKE',"%{$search}%"]->get[];
return $users;
}
Khi bạn kết xuất truy vấn whereNull đã cho ở trên, bạn sẽ nhận được truy vấn SQL sau
SELECT * FROM `users` WHERE `name` LIKE '%search%';
đọc thêm. Laravel Multiple Where Ví dụ về điều kiện
ví dụ 2. Sử dụng macro với Like
Để xác định macro, bạn chỉ cần sử dụng phương thức tĩnh macro trên lớp mà bạn muốn xác định macro. Chúng ta cần xác định một macro cho lớp Eloquent, vì vậy chúng ta có thể mở rộng nó như thế này [trong phương thức khởi động của nhà cung cấp dịch vụ]
Builder::macro['whereLike', function[$column, $search] {
return $this->where[$column, 'LIKE', "%{$search}%"];
}];
Cách chúng ta có thể sử dụng macro này bây giờ rất đơn giản
public function index[]{
return User::whereLike['username', $username]
->whereLike['email', $email]
->get[];
}
ví dụ 3. Laravel whereLike với nhiều cột sử dụng macro
nếu bạn muốn tìm kiếm với nhiều cột thì bạn phải mở rộng macro này để hỗ trợ nhiều cột
Builder::macro['whereLike', function[$columns, $search] {
$this->where[function[$query] use [$columns, $search] {
foreach[\Arr::wrap[$columns] as $column] {
$query->orWhere[$column, $search];
}
}];
return $this;
}];
Vì vậy, bây giờ, nếu chúng ta chuyển một cột [sử dụng hàm array_wrap, chúng ta sẽ chuyển đổi nó thành một mảng] và tìm kiếm cột đó, nhưng nếu chúng ta thêm nhiều cột vào một mảng thì chúng ta lặp qua tất cả các cột đó và tìm kiếm cụm từ tìm kiếm trong tất cả . Mọi thứ được gói gọn trong một truy vấn where
vì chúng tôi không muốn truy vấn
SELECT * FROM `users` WHERE `name` LIKE '%search%';
0 làm rối tung bất kỳ truy vấn where
khác mà chúng tôi có thể thực hiện trên mô hình EloquentBạn có thể sử dụng macro này ngay bây giờ như thế này
public function index[]{
return User::whereLike[['username', 'email'], $search]->get[];
}
Cảm ơn bạn đã đọc bài viết này
đọc thêm. Cách gửi yêu cầu XÓA bằng cURL
Nếu bạn muốn quản lý Máy chủ VPS / VM của mình mà không cần chạm vào dòng lệnh, hãy truy cập vào liên kết này. ServerAvatar cho phép bạn thiết lập nhanh các trang web WordPress hoặc PHP tùy chỉnh trên VPS / VM chỉ trong vài phút. Bạn có thể lưu trữ nhiều trang web trên một VPS / VM, định cấu hình chứng chỉ SSL và theo dõi tình trạng của máy chủ mà không cần chạm vào giao diện dòng lệnh
Nếu bạn có bất kỳ thắc mắc hoặc nghi ngờ nào về chủ đề này, vui lòng liên hệ với chúng tôi. Chúng tôi sẽ cố gắng liên lạc với bạn
Khi bạn đặt biểu mẫu tìm kiếm trong ứng dụng của mình, bạn cần sử dụng truy vấn like để nhận mẫu phù hợp. Truy vấn LIKE được sử dụng trong mệnh đề WHERE để tìm kiếm một mẫu được chỉ định trong một cột. Bạn có thể sử dụng từ khóa LIKE MySQL và ký tự đại diện % với mệnh đề where
Trong laravel, sử dụng phương thức hùng hồn whereLike[], bạn có thể triển khai laravel where like truy vấn tìm kiếm, laravel where like nhiều cột và bộ sưu tập laravel với where like
ví dụ 1. Laravel nơi Like Query sử dụng với Eloquent Model
Bạn có thể sử dụng từ khóa LIKE MySQL và ký tự đại diện % với mệnh đề where
Ví dụ sau đại diện, làm thế nào để sử dụng nó
public function index[]{
$users = User::where['name','LIKE',"%{$search}%"]->get[];
return $users;
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Khi bạn kết xuất truy vấn whereNull đã cho ở trên, bạn sẽ nhận được truy vấn SQL sau
________số 8_______
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
ví dụ 2. Sử dụng macro với Like
Để xác định macro, bạn chỉ cần sử dụng phương thức tĩnh macro trên lớp mà bạn muốn xác định macro để. Chúng ta cần định nghĩa một macro cho lớp Eloquent, vì vậy chúng ta có thể mở rộng nó như thế này [trong phương thức khởi động của nhà cung cấp dịch vụ]
Builder::macro['whereLike', function[$column, $search] {
return $this->where[$column, 'LIKE', "%{$search}%"];
}];
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Cách chúng ta có thể sử dụng macro này bây giờ rất đơn giản
public function index[]{
return User::whereLike['username', $username]
->whereLike['email', $email]
->get[];
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
ví dụ 3. Laravel whereLike với nhiều cột sử dụng macro
nếu bạn muốn tìm kiếm với nhiều cột thì bạn phải mở rộng macro này để hỗ trợ nhiều cột
Builder::macro['whereLike', function[$columns, $search] {
$this->where[function[$query] use [$columns, $search] {
foreach[\Arr::wrap[$columns] as $column] {
$query->orWhere[$column, $search];
}
}];
return $this;
}];
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Vì vậy, bây giờ, nếu chúng ta chuyển một cột [sử dụng hàm array_wrap, chúng ta sẽ chuyển đổi nó thành một mảng] và tìm kiếm cột đó, nhưng nếu chúng ta thêm nhiều cột vào một mảng thì chúng ta lặp qua tất cả các cột đó và tìm kiếm cụm từ tìm kiếm trong tất cả . Mọi thứ được gói gọn trong một truy vấn where vì chúng ta không muốn truy vấn whereLike làm rối tung bất kỳ truy vấn where nào khác mà chúng ta có thể thực hiện trên Eloquent model