У меня очень любопытная проблема. Я пытаюсь найти условия, которые работают в модельных отношениях. Для остроумия ...
$this->Model->find('first', array(
'conditions' => array(
'Model.col1' => 'value',
'RelatedModel.col2' => 'value2')));
... при условии, что Model имеет отношение hasMany к RelatedModel. Этот конкретный поиск бомб со следующим сообщением об ошибке:
Warning (512): SQL Error: 1054: Unknown column 'RelatedModel.col2' in 'where clause' [CORE/cake/libs/model/datasources/dbo_source.php, line 525]
Глядя на создание SELECT, я быстро заметил, что сравнение в связанной модели фактически помещается в предложение WHERE, но по какой-то причине единственное, что было в предложении FROM, было Model, без признаков RelatedModel , Если я удалю сравнение, использующее взаимосвязь, в результате будут получены связанные модели.
Я использую Cake 1.2.4. На первый взгляд, в журнале изменений 1.2.4 -> 1.2.5 нет ничего такого, что покрывает это, и вы могли бы подумать, что такая очевидная ошибка будет найдена и исправлена через несколько дней, в отличие от ожидания полной месяц и ничего не упомянув в анонсе релиза.
Итак, что происходит?