简体   繁体   English

cakephp连接查询不起作用

[英]cakephp join query is not working

I am new in cake php.I want to write join query between two table.Here my query is : 我是蛋糕php的新手。我想在两个表之间编写联接查询。我的查询是:

select * from deal_purchases as dp 
  join users as u on u.id = dp.user_id
  where dp.deal_id = 6
  group by user_id

and this query run perfect.But I want to write this query in cakephp. 并且此查询运行完美。但是我想用cakephp编写此查询。 I have written this query like : 我写了这样的查询:

$table = "deal_purchases";
$query['conditions'] = array('deal_purchases.deal_id'=>$deal_id);
$query['fields'] = array('deal_purchases.*','users.*');
$query['joins'] = array(
                    array(
                        'table'=>'users',
                        'alias'=>'users',
                        'type'=>'INNER',
                        'conditions'=>array('users.id = deal_purchases.user_id')
                        ),
                );
$query['group'] = array('deal_purchases.user_id');
$result = $this->find('all', $query);

Here this query is not execute so how can I resolve this problem? 此查询未执行,如何解决此问题?

Kindly check the following your file: 请检查以下文件:

Your controller top " $uses " array contain " DealPurchase " Example 您的控制器顶部的“ $uses ”数组包含“ DealPurchase ”示例

class MerchantController extends AppController {
    var $uses = array(
        'DealPurchase'
    );

Try the following 尝试以下

$query['conditions'] = array('DealPurchase.deal_id'=>$deal_id);
$query['fields'] = array('DealPurchase.*','User.*');
$query['joins'] = array(
                    array(
                        'table'=>'users',
                        'alias'=>'User',
                        'type'=>'INNER',
                        'conditions'=>array('User.id = DealPurchase.user_id')
                        ),
                );
$query['group'] = array('DealPurchase.user_id');
$result = $this->DealPurchase->find('all', $query);

database table deal_purchases For Model Name should be DealPurchase.php in the following format 模型名称的数据库表Deal_purchases的格式应为DealPurchase.php ,格式如下

<?php 
class DealPurchase extends AppModel {
    var $name = "DealPurchase";
    //Relationship some tables
    //Validation here
}
?>

User.php Model(users) User.php模型(用户)

class User extends AppModel {
    var $name = "User"; 
    var $hasMany = array(
        'DealPurchase' => array(
            'className' => 'DealPurchase',
            'foreignKey' => 'user_id',
            'dependent' => true //true means when delete the user entry via coding then also deleted the deal_purchases entry also
        )
    );
    //validation
}

DealPurchase.php Model(deal_purchases) DealPurchase.php模型(deal_purchases)

class DealPurchase extends AppModel {
    var $name = "DealPurchase"; 
    var $belongsTo = array(
        'User' => array(
            'className' => 'User',
            'foreignKey' => 'user_id'
        )
    );
    //validation
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM