Bài viết này mình sẽ chia sẻ cách sử dụng mệnh đề where exists trong laravel 5+.
Mình sẽ demo ví dụ bên dưới để các bạn dễ hiểu nhé.
Đầu tiên mình sẽ tạo 2 tables với dữ liệu demo như bên dưới.
Table items:
Table items_city:
Tiếp theo tạo controller và thêm code như bên dưới.
AppHttpControllersItemController
<?phpnamespaceAppHttpControllers;useIlluminateHttpRequest;useDB;classItemControllerextendsController{publicfunctionindex(){$items=DB::table('items')->whereExists(function($query){$query->select("items_city.id")->from('items_city')->whereRaw('items_city.item_id = items.id');})->get()->toArray();dd($items);}}
Điều kiện ở trên sẽ lấy tất cả những items mà có id tồn tại trong trường item_id của bảng items_city.
Output:
array:3[▼
0=>{#300 ▼+"id":1+"title":"Quincy Gottlieb"+"description":"Ipsum labore vel vel non voluptatem sed. Earum id soluta adipisci sit sunt reiciendis."+"is_active":0+"deleted_at":null+"created_at":"2021-12-31 10:13:37"+"updated_at":"2021-12-31 10:13:37"}1=>{#302 ▼+"id":3+"title":"Rosie Bernhard"+"description":"Quos tempore quas sed distinctio doloremque. Doloribus nesciunt aut ut. Sunt veniam enim autem. Nostrum illum animi culpa sunt cumque."+"is_active":0+"deleted_at":null+"created_at":"2021-12-31 10:13:37"+"updated_at":"2021-12-31 10:13:37"}2=>{#305 ▼+"id":5+"title":"Verner O'Keefe V"+"description":"Reiciendis excepturi aut esse aut odio quia fuga. Molestias eos reprehenderit deserunt quam ut totam. Aut enim molestiae provident vel beatae quae omnis."+"is_active":0+"deleted_at":null+"created_at":"2021-12-31 10:13:37"+"updated_at":"2021-12-31 10:13:37"}]
Hy vọng bài viết này giúp ích cho các bạn chưa biết nhé!
Nguồn: viblo.asia