Я работаю над приложением CakePHP 1.2. У меня есть модель "Пользователь", определенная с несколькими HABTM-связями с другими таблицами через таблицу соединений.
Теперь мне поручено найти информацию о пользователе на основе данных, хранящихся в одной из этих таблиц HABTM. К сожалению, когда запрос выполняется, мое условие отклоняется с ошибкой по поводу отсутствующей таблицы. После проверки кажется, что CakePHP не включает ни одну из таблиц HABTM в оператор выбора.
Мой пользователь HABTM имеет следующие отношения:
var $hasAndBelongsToMany = array(
'Course' => array(
'className' => 'Course',
'joinTable' => 'course_members',
'foreignKey' => 'user_id',
'associationForeignKey' => 'course_id',
'conditions' => '',
'order' => '',
'limit' => '',
'uniq' => false,
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
'School' => array(
'className' => 'School',
'joinTable' => 'school_members',
'foreignKey' => 'user_id',
'associationForeignKey' => 'school_id',
'conditions' => '',
'order' => '',
'limit' => '',
'uniq' => false,
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
),
'Team' => array(
'className' => 'Team',
'joinTable' => 'team_members',
'foreignKey' => 'user_id',
'associationForeignKey' => 'team_id',
'conditions' => '',
'order' => '',
'limit' => '',
'uniq' => false,
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
);
Ошибка:
Ошибка SQL: 1054: неизвестный столбец
'School.name' в 'where clause'
И, наконец, запрос, который он пытается выполнить
SELECT
`User`.`id`, `User`.`username`, `User`.`password`, `User`.`firstName`, `User`.`lastName`, `User`.`email
`, `User`.`phone`, `User`.`streetAddress`, `User`.`city`, `User`.`province`, `User`.`country`, `User
`.`postal`, `User`.`userlevel`, `User`.`modified`, `User`.`created`, `User`.`deleted`, `User`.`deleted_date
` FROM `users` AS `User` WHERE `User`.`id` = 6 AND `School`.`name` LIKE '%Test%' LIMIT 1