我知道如果我选择一个条目,我可以通过模型关联轻松找到相关的模型数据。但是,当我使用find('all')作为索引页时,我想做的是将第一张图像作为galery的拇指。
我的关系(画廊被命名为专辑)是:
//Album-Model
public $hasMany = array(
'Picture' => array(
'className' => 'Picture',
'foreignKey' => 'album_id',
'dependent' => true,
'conditions' => ''
)
);
和
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Album' => array(
'className' => 'Album',
'foreignKey' => 'album_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
答案 0 :(得分:2)
编辑: 这应该是我自己测试过的!
在查询之前添加以下通道以指定递归。
$this->Albums->recursive = 1;
$this->set('Albums', $this->Album->find('all'));
这样,它也会发送图片数据。然后在您的模型关联中,您可以指定仅返回带有相册的第一个图像,如果这是您想要的!
只需在您的'limit' => '1',
数组中添加hasMany => Comments
,即相册模型。
然后你可以在你的视图中迭代
foreach($Albums as $Album){
$Album['Album']; // ALBUMS info do whatever
$Album['Picture']; // The thumbnail
}
EDIT2:我刚看到你也可以做到
$this->Album->find('all', array('recursive' => 1));