0

我知道如果我选择一个条目,我可以通过模型关联轻松找到相关的模型数据。但是,当我对索引页使用 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' => ''
    )
);
4

1 回答 1

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));
于 2012-08-15T20:13:37.280 回答