Liệt kê các cách sử dụng hàm where lồng nhau trong Laravel
Bài viết tổng hợp các cách sử dụng hàm `where` lồng nhau trong Laravel, giúp người đọc hiểu rõ cách xây dựng các truy vấn phức tạp trong ứng dụng.
Laravel cung cấp nhiều cách để sử dụng hàm where
lồng nhau trong các truy vấn cơ sở dữ liệu. Sử dụng where
lồng nhau cho phép bạn tạo ra các điều kiện phức tạp hơn, giúp truy vấn dữ liệu hiệu quả và chính xác hơn. Dưới đây là một số cách phổ biến để sử dụng where
lồng nhau trong Laravel.
Các cách sử dụng hàm where lồng nhau trong Laravel:
-
Sử dụng
where
lồng nhau với Closure:$users = DB::table('users') ->where('status', 'active') ->where(function ($query) { $query->where('age', '>', 18) ->orWhere('role', 'admin'); }) ->get();
-
Sử dụng
where
lồng nhau với nhiều điều kiện:$products = DB::table('products') ->where('category', 'electronics') ->where(function ($query) { $query->where('price', '<', 1000) ->where('stock', '>', 0); }) ->get();
-
Sử dụng
where
lồng nhau với nhiều bảng:$orders = DB::table('orders') ->where('status', 'completed') ->where(function ($query) { $query->whereExists(function ($query) { $query->select(DB::raw(1)) ->from('order_items') ->whereRaw('order_items.order_id = orders.id') ->where('order_items.quantity', '>', 0); }); }) ->get();
-
Sử dụng
orWhere
lồng nhau:$users = DB::table('users') ->where('active', 1) ->orWhere(function ($query) { $query->where('email_verified_at', '!=', null) ->where('created_at', '>', now()->subYear()); }) ->get();
-
Sử dụng
where
lồng nhau trong Eloquent:$posts = Post::where('status', 'published') ->where(function ($query) { $query->where('views', '>', 100) ->orWhere('likes', '>', 50); }) ->get();
Yêu cầu hệ thống:
- Laravel 5.1 trở lên
- Cài đặt và cấu hình môi trường phát triển
Lời khuyên:
- Nên sử dụng
where
lồng nhau khi có nhiều điều kiện phức tạp để dễ dàng quản lý và đọc mã hơn. - Kiểm tra và tối ưu hóa truy vấn để tránh làm chậm ứng dụng của bạn.