У меня есть модель дерева с этой структурой и таблицами:CakePHP вложенные содержат
Rate:
id, model_name, object_id
1 , SocialPost, 12
public $belongsTo => array(
'SocialPost' => array(
'className' => 'Social.SocialPost',
'foreignKey' => 'object_id',
'conditions' => array(
'Rate.object_id = SocialPost.id',
),
)
)
SocialPost: Ид, file_id
public $hasOne = array(
'File' => array(
'className' => 'File',
'foreignKey' => false,
'conditions' => array(
'File.id = SocialPost.file_id',
),
),
);
Файл: идентификатора, название
все древовидные модели действуют как сдерживаемые
этот код работать хорошо в SocialPostsController:
$posts = $this->SocialPost->find('all', array(
'limit' => 5,
'contain' => array(
'File'
)
));
выход: http://pastie.org/private/9ixxufncwlr3tofgp8ozw
но этот код в RatesController возвращать тот же файл для всех SocialPost:
$mostRated = $this->Rate->find('all', array(
'limit' => $count,
'contain' => array(
'SocialPost' => array(
'File'
)
)
));
выход: http://pastie.org/private/lbqryo1gxgvxjb5omfwrw
, что здесь не так?
Социальный - это плагин, а SocialPost - его модель. Я не могу использовать attribTo для файла в SocialPost. Поскольку у каждого сообщения есть один файл и в файловой модели у меня есть. Для файла SocialPost.every принадлежит много SocialPost. – realman