В моем приложении 2 модели, связанные с отношением hasMany.Модель Класс имеет много сеансов , и занятия могут проводиться в нескольких городах, а также могут быть опубликованы или не опубликованы.Информация о городе (city_id) хранится в таблице классов, однако время классов хранится в таблице сеансов, поскольку у класса может быть много сеансов.
Теперь я хочу перечислить все классы, которые
- active
- происходит в определенном городе
- время начала занятий> NOW
Не в этом классе может быть несколько сеансов, поэтому мы просто хотимсписок классов один раз (не для каждой сессии).Я использую соединение согласно учебнику, но я не очень хорош в SQL, поэтому он не работает, и я уверен, что я что-то делаю неправильно.Ниже приведен код.
$options['joins'] = array(
array(
'table' => 'sessions',
'alias' => 'Session',
'type' => 'left',
'conditions' => array(
'Class.city_id' => $this->data['Class']['city_id'],
'Class.state' => 'active',
'Session.start >= ' => date('Y-m-d H:i:s'),
'Class.id' => 'Session.class_id'
)
)
);
$classes = $this->Class->find('all', $options);
Этот код возвращает все классы из всех городов, хотя это имело место в прошлом.Может ли кто-нибудь помочь мне, чтобы он возвращал правильные классы в соответствии с критериями, упомянутыми выше.