Почему я должен объединять таблицы, используя find (‘list’)

В моем проекте есть странная вещь. У меня есть такая ассоциация.

Novelty->belongsTo->Category

И это модель:

App::uses('AppModel', 'Model');class Category extends AppModel {

public $actsAs = array('Tree','Containable');
public $displayField = 'name';

public $hasMany = array(
'Novelty' => array(
'className' => 'Novelty',
'foreignKey' => 'category_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}class Novelty extends AppModel {

public $displayField = 'title';

public $belongsTo = array(
'Category' => array(
'className' => 'Category',
'foreignKey' => 'category_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);

}

И когда я запускаю такую ​​команду в модель файл Novelty.phpвсе идет гладко.

$this->find('all',[
'conditions' => [
'Category.lft >= ' => $mainCategory['Category']['lft'],
'Category.rght <= ' => $mainCategory['Category']['rght']
],
]);

Но если я изменюсь в модель файл из все в список У меня есть такое исключение:

$this->find('list',[
'conditions' => [
'Category.lft >= ' => $mainCategory['Category']['lft'],
'Category.rght <= ' => $mainCategory['Category']['rght']
],
]);

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Category.lft' in 'where clause'
SQL Query: SELECT `Novelty`.`id` FROM `database`.`novelties` AS `Novelty` WHERE `Category`.`lft` >= 110 AND `Category`.`rght` <= 115

То же самое в контроллере.

Это какая-то ошибка или сложность моего проекта? я использую CakePHP 2.5.1

0

Решение

Задача ещё не решена.

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

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