Cakephp 2.x找到相关模型的第一个条目

时间:2012-08-15 19:51:42

标签: cakephp gallery model-associations

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

1 个答案:

答案 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));