蛋糕php在查询条件内嵌套查询

时间:2017-05-13 17:22:52

标签: php mysql cakephp

我需要在查询条件中构建嵌套查询。

    $wc = {"Structure.deleted":0,"StructureSub.code":"YV360"}
    $this->Structure->bindUser();
    $this->Structure->bindSubscriptions();
    $n = $this->Structure->find('count', array('conditions' => $wc));

模型是这样的(模型类Structure.php

public function bindSubscriptions($options=array()) {

    $options_default = array(
        'conditions' => array('deleted'=>0),
        'order' => array('created desc')
    );

    $options = array_merge($options_default,$options);

    $this->bindModel(array(
        'hasMany' => array(
            'StructureSub' => $options
        )
    ));

    return $this;
}

public function bindUser($options=array()) {

    $options_default = array(
        'conditions' => array('User.deleted'=>0),
        'foreignKey' => 'owner'
    );

    $options = array_merge($options_default,$options);

    $this->bindModel(array(
        'belongsTo' => array(
            'User' => $options
        )
    ));

    return $this;
}

但查询执行时出错:

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'StructureSub.code' in 'where clause'

SQL Query: SELECT COUNT(*) AS `count` FROM `db`.`structure` AS `Structure` LEFT JOIN `db`.`user` AS `User` ON (`Structure`.`owner` = `User`.`id` AND `User`.`deleted` = 0) WHERE `Structure`.`deleted` = 0 AND `StructureSub`.`code` = 'YV360' 

StructureSub的字段名为" code"在数据库中。我不知道为什么User表被包含为连接而StructureSub不包含(我的意思是调用绑定方法)。 也许是因为有些行没有关系?

我的Cake php版本是2.5.6

0 个答案:

没有答案