Теперь похоже, что таблицы оформлены таким образом:
Отель [id], Номер [id, hotel_id], Скидка [id, room_id]
Это означает, что Rooms-> Скидка не принадлежит To () -> это hasMany (), следовательно, она должна быть названа как: Room-> Discounts () - таким образом, одна комната имеет несколько скидок:
public function discounts()
{
return $this->hasMany(Discount::class, 'id', 'room_id');
}
И на основании этого - естьможно было бы разместить еще одну связь в отеле:
public function roomDiscounts()
{
return $this->hasManyThrough(Discount::class, Room::class, 'hotel_id', 'room_id', 'id', 'id');
}
Итак, вы хотите найти все отели, где номера имеют скидки:
$hotels = Hotel::whereHas('roomDiscounts')->get();
Надеюсь, это поможет.