Я полностью запутался.
У меня есть три таблицы: applicants
, applicants_qualifications
и qualifications
.
В представлении индекса для заявителей у меня есть форма с раскрывающимся списком квалификаций. Результатом должен быть список соискателей с такой квалификацией.
Итак, мне нужно, чтобы таблица кандидатов в представлении индекса основывалась на соединении, верно?
Если я добавлю это в мой Applicants_controller:
$options['joins'] = array(
array(
'table' => 'applicants_qualifications',
'alias' => 'q',
'type' => 'left outer', // so that I get applicants with no qualifications too
'conditions' => array('Applicant.id = q.applicant_id',)
)
);
$this->Applicant->find('all', $options);
Я получаю дополнительный SQL-оператор внизу страницы с левым внешним соединением, но также есть SQL-файл без объединения.
Я думаю, что эта строка:
$this->set('applicants', $this->paginate());
вызывает оператор sql без объединения.
Похоже, мне нужно объединить опции join $ с вызовом paginate. Это правильно?
Если я использую форму поиска, я получаю: Неизвестный столбец 'Qualifications.qualification_id' в 'предложении where'
Так что страница, очевидно, еще не "использует" мой sql с объединением.
Извините, я все еще новичок. Любая помощь приветствуется ...