Возможно, вы захотите использовать сдерживаемое поведение CakePHP. ( подробнее об этом здесь ).
//Store Model
class Store extends AppModel {
var $actsAs = array('Containable');
//associations
//validation
//the method you call from the controller
function getStoreStats() {
$this->recursive = -1;
$params = array();
$params['containable'] = array(
'User' => array(
'StoreManager',
),
'City'
);
$data = $this->find('all', $params);
return $data;
}
}
Идея состоит в том, что вы устанавливаете рекурсивное значение на -1
, что ограничивает данные, которые вы возвращаете из хранилища, на себя. Затем, используя параметрableable, вы указываете, какие другие связанные данные вы хотите вернуть.
Убедитесь, что вы читаете книгу CakePHP, чтобы убедиться, что вы на правильной версии (1.3, 2.0 ... и т. Д.).
Кроме того, достаточно просто установить $this->recursive=-1;
в модели приложения, по умолчанию для всех.
Предполагая, что все ваши отношения установлены правильно, и ни одно из них не является отношением HABTM, Containable должен отлично работать для вас.