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.
App\Http\Controllers\ItemController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
class ItemController extends Controller
{
public function index()
{
$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é!