Apakah ada cara untuk mengembalikan model induk dengan suatu hubungan tetapi hanya mengembalikan beberapa baris hubungan dengan menggunakan di mana?
Itu mungkin cukup membingungkan, izinkan saya menjelaskannya.
Saat ini saya mempunyai 2 model, Gedung dan ruangan, 1 gedung bisa mempunyai banyak ruangan.
Saya ingin dapat meneruskan array id ruangan, dan mengembalikan situs dan hanya ruangan yang ada di array.
Inilah yang saya miliki saat ini
if($request->input('ids') && !is_null($request->input('ids'))){
$ids = explode(',',$request->input('ids'));
//Exploded ids looks like this "2,4,11,55,56"
$buildings = Buildings::join('rooms')->whereIn('rooms.id',$ids)->get();
} else {
$buildings = Buildings::whereHas('rooms')->get();
}
Saat ini ini akan mengembalikan semua bangunan yang memiliki ruangan yang idnya ada di array ids
dan semua ruangannya, yang pada akhirnya mengembalikan bangunan dengan 200+ kamar. Saya membutuhkannya untuk mengembalikan gedung dan HANYA kamar yang memiliki id dalam array itu.
Apakah ini mungkin?
Saya tahu saya bisa melakukannya dengan cara terbalik dan mendapatkan semua ruangan sebagai induk lalu mendapatkan bangunannya, tetapi saya memerlukan bangunan untuk menjadi induk karena saya menjalankan penelitian seperti ini dengan hasilnya
foreach($buildings as $key => $building){
<h1>{{$building->name}}</h1>
foreach($building->rooms as $k => $room){
<p>{{$room->name}}</p>
}
}
Jika itu masih membingungkan, skenario dunia nyata adalah saya membuat PDF ruangan. Kamar dapat dipilih dengan mencentang kotak di sebelah kamar dalam daftar kamar. Saya kemudian harus bisa melewati array id ruangan, dan mendapatkan semua bangunan yang berisi salah satu ruangan. Kemudian dapatkan semua ruangan untuk setiap bangunan tempat id ruangan berada dalam array.