我知道,如果我选择单个条目,我可以通过模型关联轻松找到相关的模型数据。但是我想做的是,当我使用 find('all') 作为索引页时,将第一张图像作为画廊的拇指。
我的关系(画廊被命名为相册)是:
//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' => ''
)
);
编辑 :这应该有效,我自己测试了它!
在查询之前,添加以下通道以指定递归性。
$this->Albums->recursive = 1;
$this->set('Albums', $this->Album->find('all'));
这样,它还将发送图片数据。然后在模型关联中,您可以指定仅返回带有相册的第一个图像(如果这是您想要的)!
只需在相册模型中的hasMany => Comments
数组中添加'limit' => '1',
即可。
然后,您可以在视图中迭代执行
foreach($Albums as $Album){
$Album['Album']; // ALBUMS info do whatever
$Album['Picture']; // The thumbnail
}
编辑2:我刚刚看到你也可以做
$this->Album->find('all', array('recursive' => 1));