我有三个表项目,任务和标签。 Projects.id是第一个表的主键,Tasks.id是第二个表的PK,Tags.id是第三个表的PK。
$test = $this->Projects->find('all',
array(
'recursive' => 2
)
);
返回正确的数据。
但是
$test = $this->Projects->find('all',
array(
'recursive' => 2,
'conditions' => array('Tags.id = ' => '10')
)
);
给出以下错误。 找不到列:1054'where子句'中的未知列'Tags.id'。
我有标签表的id字段,为什么会出现此错误?
项目模型代码段
public $primaryKey = 'id';
public $hasMany = array(
'Tasks' => array('className' => 'Tasks','foreignKey' => 'project_id')
);
任务型号代码段
public $primaryKey = 'id';
public $hasMany = array(
'Tags' => array('className' => 'Tags','foreignKey' => 'task_id')
);
答案 0 :(得分:0)
这是因为您无法在hasMany关联的模型字段上传递条件。
要完成这项工作,请通过"加入"在查找条件中,这将正常工作。
http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html