mysql - cakephp 对同一个类有很多查询

标签 mysql cakephp cakephp-2.0

我正在使用这个绑定(bind)

$this->Company->bindModel( array(
        'hasMany' => array(
                'CompanyContactPerson'=>array('conditions' => array('Company.name Like'=>'%'.$a.'%'),),
            ),
        'belongsTo' => array(
                'Status',
                'User'
            )
    ));
    $this->paginate = array(
        'limit' =>20,
        'conditions'=>$conditions,
        'order' =>array('Company.id'=> 'desc') ,
    );
$all_companies = $this->paginate('Company');

它给出这个查询作为结果。

SELECT `Company`.`id`, `Company`.`user_id`, `Company`.`name`, `Company`.`status_id`, `Company`.`email`, `Company`.`modified`, `Company`.`created`, `Status`.`id`, `Status`.`name`, `User`.`id`, `User`.`roll`, `User`.`username`, `User`.`email`, `User`.`password`, `User`.`first_name`, `User`.`last_name`, `User`.`gender`, `User`.`address`, `User`.`city`, `User`.`state`, `User`.`country`, `User`.`modified`, `User`.`created` 
FROM `companyinfo`.`companies` AS `Company` 
LEFT JOIN `companyinfo`.`statuses` AS `Status` ON (`Company`.`status_id` = `Status`.`id`) 
LEFT JOIN `companyinfo`.`users` AS `User` ON (`Company`.`user_id` = `User`.`id`) 
WHERE 1 = 1 ORDER BY `Company`.`id` desc LIMIT 20

它对 CompanyContactPerson 模型进行单独查询。因此,我从 Company 表中得到了所有结果。我只需要公司表中满足 CompanyContactPerson 条件的那些行。我是如何做到这一点的

最佳答案

将其放入您的 Company 模型中,以便它可以建立关系。 :)

public $hasMany = array(
        'CompanyContactPerson' => array(
            'className' => 'CompanyContactPerson',
            'foreignKey' => 'ForeignKeyinCompanyContactPerson',
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'exclusive' => '',
            'finderQuery' => '',
            'counterQuery' => '',
            'dependent' => true
        )
    ));

或将其放入您的 CompanyContactPerson 模型

public $belongsTo = array(
        'Company' => array(
            'className' => 'Company',
            'foreignKey' => 'ForeignKeyofCompanyContactPersonTABLE',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )
    );

关于mysql - cakephp 对同一个类有很多查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26271118/

相关文章:

javascript - 在一个数据库字段中插入多个文本框的数据

php - fatal error : Allowed memory size of 134217728 bytes exhausted (tried to allocate 87 bytes)

javascript - 如何在cakephp中调用 View 文件中的函数?

php - 如何在 CakePhp 的当前页面中添加事件类

mysql - 在没有 FROM 子句的 SELECT 语句中乘以值

php - 无法使用函数文件将 MySQL 连接到注册页面

php - 连接 cakephp 2.0 与 PostgreSQL

unit-testing - 如何访问 CakePHP 2 测试用例中的夹具数据?

mysql - 仅允许具有标识符的实体将实体绑定(bind)到查询参数

每个数据库/表的 MySQL 查询缓存