未找到列:CakePHP中的1054未知列'TaskTags.id'

时间:2016-03-17 12:25:57

标签: php cakephp

我有三个表项目,任务和标签。 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')
);

1 个答案:

答案 0 :(得分:0)

这是因为您无法在hasMany关联的模型字段上传递条件。

要完成这项工作,请通过"加入"在查找条件中,这将正常工作。

http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html