Basic Query
Basic Query
1. Buka file app/Http/Controllers/PostsController.php, tambahkan code dibawah ini. Line 9 dan line 20 - 34.
2. Pada browser buka http://localhost:8000/posts.
3. Buka file app/Http/Controllers/PostsController.php, tambahkan code dibawah ini. Line 26 - 27
4. Pada browser buka http://localhost:8000/posts
Query Relationship
1. Query BlogPost yang hanya memiliki comment
$posts = BlogPost::has('comments')->get()
2. Query BlogPost yang hanya memiliki 2 comment atau lebih
$posts = BlogPost::has('comments', ‘>=’, 2)->get()
3. Query BlogPost yang hanya memiliki comment yang memiliki content ‘pertama’
$post = BlogPost::whereHas('comments', function($query) {
$query->where('content', 'like', '%pertama%'); })->get();
4. Query BlogPost yang hanya memiliki comment yang memiliki content ‘kedua’
$post = BlogPost::whereHas('comments', function($query) {
$query->where('content', 'like', '%kedua%'); })->get();
5. Query BlogPost yang tidak memiliki comment
$posts = BlogPost::doesntHave('comments')->get();
6. Query BlogPost yang memiliki comment dan content dari comment tidak mengandung kata ‘kedua’
$post = BlogPost::whereDoesntHave('comments', function($query) {
$query->where('content', 'like', '%kedua%'); })->get();
7. Query BlogPost dengan jumlah comment yang dimilikinya.
$post = BlogPost::withCount('comments')->get();
Query di atas akan menambahkan satu field di object BlogPost dengan nama comments_count.
8. Query BlogPost dengan spesifikasi:
- Jumlah comment yang dimiliki (semua comment)
- Jumlah comment yang sesuai dengan kondisi, misalkan comment yang dibuat pada dan setelah waktu tertentu (>= 2021-06-06 01:57:59)
$post = BlogPost::withCount(['comments', 'comments as new_comments_count' => function($query) { $query->where('created_at', '>=', '2021-06-06 01:57:59'); } ])->get();
Query di atas akan menambahkan satu field di object BlogPost dengan nama comments_count dan new_comments_count.
Comments
Post a Comment