сообщение об ошибке класса календаря codeigniter

Я использую календарь класса codeigniter и пытаюсь отобразить все бронирования за текущий месяц. В поле, где день, у меня может быть более одного результата, и я хотел бы отобразить их разделенные комой.

Тем не менее, я получаю следующее сообщение об ошибке:

A PHP Error was encountered
Severity: Notice
Message: Undefined property: stdClass::$reservationID
Filename: models/reservationcalendarmodel.php
Line Number: 81

A PHP Error was encountered
Severity: Notice
Message: Undefined property: stdClass::$reservationArrivalDate
Filename: models/reservationcalendarmodel.php
Line Number: 81

Ошибка отображается 10 раз (я ожидаю 9 записей из базы данных)

Вот (соответствующий) код из модели:

function getReservations($year,$month) {
$currentHotelUser = $this->session->userdata('currentHotelUser');
$query = $this->db->query(
"SELECT r.*
FROM room r
LEFT JOIN (SELECT rr.roomID, re.reservationID,re.reservationArrivalDate
FROM reservationroom rr
LEFT JOIN reservation re ON re.reservationID = rr.reservationID
WHERE re.reservationArrivalDate LIKE('".$year."-".$month."-%'))
sq ON sq.roomID = r.roomID
WHERE r.hotelID = ".$currentHotelUser['hotelID']."AND sq.reservationID IS NOT NULL
");

$cal_data = array();
foreach($query->result() as $row) {
// BELLOW IS THE LINE 81 WHERE THE ERROR IS
$cal_data[substr($row->reservationArrivalDate,8,2)]= $row->reservationID;
}
return $cal_data;
}

function generate($year,$month) {
$cal_data = $this->getReservations($year, $month);
$this->load->library('calendar', $this->conf);
return $this->calendar->generate($year,$month,$cal_data);
}

Вот (соответствующий) код от контроллера:

$this->load->model('ReservationCalendarModel');
$data['calendar'] = $this->ReservationCalendarModel->generate($year,$month);

Вот (соответствующий) код с точки зрения:

echo $calendar;

Кто-нибудь знал, почему я получаю вышеуказанную ошибку?

2

Решение

Проблема в том, что вы запрашиваете результаты, не имеющие bookingID иservationArrivalDate. Вот причина, пока вы получаете эту ошибку. Добавьте эти два столбца в ваш основной запрос выбора.

"SELECT r.*, sq.roomID, sq.reservationId
FROM room r
LEFT JOIN (SELECT rr.roomID, re.reservationID,re.reservationArrivalDate
FROM reservationroom rr
LEFT JOIN reservation re ON re.reservationID = rr.reservationID
WHERE re.reservationArrivalDate LIKE('".$year."-".$month."-%'))
sq ON sq.roomID = r.roomID
WHERE r.hotelID = ".$currentHotelUser['hotelID']."AND sq.reservationID IS NOT NULL
"
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]