Saya mengalami kesulitan memahami kondisi jumlah hubungan di WhereHas. Halaman dokumen tidak membahasnya tetapi halaman API membahasnya. Kutipan dari API.
Builder|Builder WhereHas(string $relation, Penutupan $callback, string $operator = '>=', int $count = 1)
Tambahkan kondisi jumlah hubungan ke kueri dengan klausa Where.
Contoh
Model Resource
memiliki hubungan Banyak ke Banyak dengan ResourceCategory
public function categories()
{
return $this->belongsToMany('ResourceCategory', 'resource_category_mapping');
}
Kondisi hubungan di Has
Kondisi hubungan di Telah berfungsi seperti yang diharapkan.
Resource::has('categories', '>', 1)->get()
//this return all resources which have more than one catgories
Kondisi hubungan di WhereHas
Kondisi hubungan di WhereHas tidak berjalan sesuai harapan. Saya yakin saya telah salah memahaminya.
Resource::whereHas('categories', function ( $query){
$query->whereIn('resource_category_id', [1, 2, 4]);
}, '>', 1)->get()
Kode di atas harus mengembalikan sumber daya yang kategorinya termasuk dalam salah satu [1, 2, 4] dan sumber daya tersebut memiliki lebih dari satu kategori. Tapi ternyata tidak.
Pertanyaan
Mohon jelaskan kondisi hubungan di WhereHas, mungkin memberikan contoh akan sangat membantu.