Хорошо, это немного сложно (для меня в любом случае).Я хотел бы вытащить изображения из двух записей, чтобы увидеть их в ОДНОМ результате.
У меня есть юнит, который принадлежит комплексу.Каждый юнит и каждый комплекс могут иметь запись в таблице изображений.
Я бы хотел, чтобы мой результат для конкретного юнита показывал все изображения юнита в таблице изображений, а также несколько изображений из его комплекса (также хранится в таблице изображений).Вот мои модели:
class Image extends AppModel {
public $name='Image';
var $belongsTo=array(
'Unit'=>array (
'className'=>'Unit',
'foreignKey'=>'unit_id'
),
'Complex'=>array (
'className'=>'Complex',
'foreignKey'=>'complex_id'
),
'Restaurant'=>array (
'className'=>'Restaurant',
'foreignKey'=>'restaurant_id'
)
);
}
class Complex extends AppModel {
public $name='Complex';
public $hasMany=array('Unit');
public $hasOne=array('Image');
public $belongsTo=array(
'Location'=>array(
'className'=>'Location',
'foreignKey'=>'location_id'
)
);
}
class Unit extends AppModel {
public $name='Unit';
public $belongsTo=array(
'User'=>array(
'className'=>'User',
'foreignKey'=>'user'
),
'Complex'=>array(
'className'=>'Complex',
'foreignKey'=>'complex_id'
),
'Location'=>array (
'className'=>'Location',
'foreignKey'=>'location_id'
),
);
public $hasOne=array('Image');
}
Вот логика моего контроллера:
$this->paginate['Unit']=array(
'limit'=>9,
'order' => 'RAND()',
'contain'=>array(
'User'=>array('email'),
'Complex'=>array('location_id'),
'Location',
'Image'
),
'conditions'=>array(
'Unit.active'=>1)
);
$data = $this->paginate('Unit');
$this->set('allaccommodations', $data);
Вы можете увидеть результаты отладки здесь: .Он извлекает данные моего изображения для модуля, но мне нужно получить массив изображений с unit_id и complex_id.Это возможно?