Thông thường chúng ta hay sử dụng tìm kiếm dữ liệu "LIKE" các column trong table, nếu trường hợp ta có nhiều column cần tìm kiếm thì dẫn đến việc viết câu truy vấn rất là nhiều dòng code mà còn phức tạp hơn nửa:
Cách thông thường
//cách 1:
// lấy tất cả categories
$searchCategory = $request->search;
$categories = Category::query()
->when($searchCategory,fn($query,$searchCategory)=>$query
->where('title', 'like', '%'.$searchCategory.'%')
->orWhere('slug', 'like', '%'.$searchCategory.'%'))
->orderBy('id', 'desc')->paginate(10);
Cách tối ưu hơn với phương thức whereAny() trong Laravel
/* cách 2 */
$categories2 = Category::whereAny(
[
'title',
'slug'
],
'LIKE',
"%{$searchCategory}%"
)->orderBy('id', 'desc')->paginate(10);