2015-06-07 2 views
1

Предполагая, что у меня есть 3 модели с именем Content, Category, Zone. Content - дитя Category модель, Category - ребенок Zone модель. Иерархическая структура выглядит так:выберите поля из двухуровневой родительской модели в cakephp

Zone 
---Category 
------Content 

Теперь я хочу получить данные из таблицы контента с некоторыми полями родительской модели. Я могу получить данные от непосредственного родителя, но не могу выбрать родительскую модель родителей

Что я пробовал?
здесь запрос я попытался

$result = $this->Content->find('all', array('recursive' => 2, 'contain' => array('Category.Zone'), 'fields' => 'Content.name, Category.name, Category.Zone.name')); //problem is Category.Zone.name otherwise all is ok 

Этот запрос может выбирать данные из Content и его родителя Category, но не могу получить данные из формы Zone модель, которая родители Category модели.

N.B. Я могу сделать это, присоединившись. Но я хочу сделать это путем ассоциации.

ответ

0

Примечание: Рекурсивный будут игнорироваться, как только вы используете Containable Behavior см Docs

$result = $this->Content->find('all', array(
    'contain' => array(
     'Category' => array('Zone') 
    ), 
    'fields' => 'Content.name, Category.name, Zone.name' 
)); 

Вы прошли 'contain' => array('Category.Zone'), модель должна иметь их на клавишах, и, возможно, вы можете установить связь вместо значений. например: -

'contain' => array(
    'Category' => array(/*conditions*/), 
    'Zone' => array(/*conditions*/) 
), 

Я предполагаю, что вы уже делали ассоциации в моделях, поэтому здесь не нужно проходить здесь.

+0

Зона не связана с Контентом. Зона, связанная с категорией и категорией, связанной с Контентом. Теперь я хочу выбрать поле формы зоны. –

+0

Я пробую с вашим кодом. но это не работа. '$ result = $ this-> Content-> find ('all', array ('contains' => array ('Category' => array ('Zone')), 'fields' => 'Content.name , Category.name, Zone.name ')); ' –

+0

Вы помещаете ассоциации в соответствующие модели? если не проходят условия в сдерживаемом –

Смежные вопросы