首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置HABTM关系的条件

如何设置HABTM关系的条件
EN

Stack Overflow用户
提问于 2014-07-26 14:14:44
回答 2查看 42关注 0票数 1

在kid模型中,我在HABTM关系下面定义了这一点。

代码语言:javascript
复制
public $hasAndBelongsToMany = array( 
    'Pics' => array(
        'className' => 'Pic',
        'joinTable' => 'pics_kids',
        'foreignKey' => 'kid_id',
        'associationForeignKey' => 'pic_id'
    )
);

图片表存储图片的详细信息,如评论、pic_url和日期,pics_kids表中有与图片和孩子相关的pic_id和kid_id id。如果我必须根据kid_id和date(图片表格中的图片日期)检索记录,如何检索?

代码语言:javascript
复制
$kid_pics=$this->kid->find('all', array(
    'conditions' => array(
        'kid.id' => 1,
        'Pic.date' => '26/07/2014'
    )
));

如果我使用上面查询,我得到的错误是where claue中没有列Pic.date。

EN

回答 2

Stack Overflow用户

发布于 2014-07-26 18:43:38

为您的HATBM关系动态添加条件:

代码语言:javascript
复制
$this->Kid->hasAndBelongsToMany['Pic']['conditions'] = array(
    'Pic.date' => '26/07/2014'
) ;
$kid_pics = $this->Kid->real(null, 1) ;
票数 0
EN

Stack Overflow用户

发布于 2014-07-26 19:07:45

您可以使用内置的可包含行为。

代码语言:javascript
复制
$this->Kid->Behaviors->load('Containable');

$kid_pics = $this->Kid->find('all', array(
    'conditions' => array(
        'Kid.id' => 1
    ),
    'contain' => array(
        'Pic' => array(
            'conditions' => array(
                'Pic.date' => '26/07/2014'
            )
        )
    )
));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24968140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档