在儿童模型中,我已将此定义为HABTM关系。
public $hasAndBelongsToMany = array(
'Pics' => array(
'className' => 'Pic',
'joinTable' => 'pics_kids',
'foreignKey' => 'kid_id',
'associationForeignKey' => 'pic_id'
)
);
照片,pic_url和日期以及pics_kids表等照片的Pics表商店详细信息中包含与pic和kids相关的pic_id和kid_id id。如果我必须根据kid_id和日期(图片表中的图片日期)检索记录如何检索它?
$kid_pics=$this->kid->find('all', array(
'conditions' => array(
'kid.id' => 1,
'Pic.date' => '26/07/2014'
)
));
如果我使用上面的查询,我会得到错误,其中没有列Pic.date in claue。
答案 0 :(得分:0)
动态地为您的HATBM关系添加条件:
$this->Kid->hasAndBelongsToMany['Pic']['conditions'] = array(
'Pic.date' => '26/07/2014'
) ;
$kid_pics = $this->Kid->real(null, 1) ;
答案 1 :(得分:0)
您可以使用内置的可包含行为
$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'
)
)
)
));