Я работаю в системе бронирования отелей, где пользователь / администратор может выбрать несколько номеров для бронирования.
Я столкнулся с проблемой в edit
функциональность.Я ищу помощь и предложения о том, как сделать это правильно.
Моя схема.
Номера:
room_number
price
reserved (Boolean)
maintenance (Boolean)
Бронирование:
customer_id
checkin
checkout
Reservation_Room
room_id
reservation_id
TotalPrice
Объем запросов по комнатам:
public function scopeIsNotReserved($query)
{
return $query->where('reserved', false);
}
Модель резервирования отношений:
public function rooms()
{
return $this->belongsToMany(Room::class);
}
Фактическая проблема:
Iне может использовать IsNotReserved query scope
при редактировании бронирования, потому что оно не передаст значение выбранным параметрам.
Я хотел бы пропустить все номера, которые не зарезервированы, кроме этого reservation_id
(см. $roomId
).
Моя функция редактирования контроллера выглядит следующим образом:
$reservation = Reservation::findOrFail($id);
$customers = Customer::pluck('name', 'id')->toArray();
// В данный момент ничего не делаем с этим запросом.
$roomId = $reservation->rooms()->pluck('rooms.id')->toArray();
Получение всех комнат
$rooms = Room::IsNotOnMaintenance()->get();