Cakephp, Получить данные для моделей HABTM, используя find - PullRequest
1 голос
/ 20 марта 2010

Я новичок в CakePHP и пытаюсь сделать что-то, что должно быть относительно простым. У меня есть 2 модели проектов и категории, связанные отношениями HABTM.

Я пытаюсь выполнить следующий запрос -> найти все проекты, которые относятся к категории

$projects = $this->Project->find('all', array('conditions' => array('Category.slug' => $category)));

Однако, когда я делаю это, он генерирует ошибку SQL:

SQL Error: 1054: Unknown column 'Category.slug' in 'where clause' 

Что я делаю не так?

1 Ответ

1 голос
/ 21 марта 2010

Насколько я знаю, вы можете получить то, что вы хотите, как это:

/*in Project Controller file*/

$categorys = $this->Project->Category->find('all', array('conditions' => array('Category.slug' => $category)));

И вы, вероятно, получите что-то следующее, если правильно установите отношения HABTM:

Array
(  
    [Category] => Array
    (
        [id] => xxx
        [name] => hello there
        ...
    )

    [Project] => Array
    (
        [0] => Array
            (
                [id] => 123
                [name] => Breakfast
            )
       [1] => Array
            (
                [id] => 124
                [name] => Dessert
            )
       [2] => Array
            (
                [id] => 125
                [name] => Heart Disease
            )
    )
)

Это то, что вы хотите, не так ли? См. работа с HABTM в cakephp в кулинарной книге.

...