2016-04-20 15 views
0

Iケーキphp.Iの新しい2つの間のクエリに参加書きたいよtable.Here私のクエリは次のとおりです。CakePHPは、クエリが動作していない参加

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 

とperfect.But実行し、このクエリは、私はこれを書きたいですcakephpのクエリ。私はこのようなクエリを書いた:

$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); 

ここでこのクエリは実行されないので、どうすればこの問題を解決できますか?

お使いのコントローラのトップ "$uses" 配列は、以下の

$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); 

データベーステーブルがをdeal_purchases試してみてください "DealPurchase" 例

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

が含まれています。

+0

は、私が使用してCakePHPのバージョンを知っているかもしれませんクエリ名(コントローラ名またはモデル名) –

+0

@MathsRkBala私はCakePHP(tm )v 0.2.9バージョン。そして私はコントローラーに質問を書いた。 –

+0

コントローラー名(DealPurchasesControllerまたは他の任意の名前)がわかります –

答えて

0

親切に下記のファイルをご確認くださいモデル名はです。次の形式で

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

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モデル(deal_purchases)

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

var $ uses = array( 'DealPurchase' )の意味は何ですか? –

+0

コントローラーにモデル(DealPurchase)を含めると、あなたの(Merchant Controller)内のどこにある(deal_purchasesテーブル)のデータにもアクセスできます。 deal_purchasesモデル名はDealPurchase.phpである必要があります –

+0

モデルファイルにテーブルの関係を書き込む方法は? –

関連する問題