2016-10-18 16 views
1

こんにちは私はテーブル名がUniversity_Industryです。それはとind_id大学テーブルと業種テーブルのforiegnキーとして持っています。そうすれば、大学には多くの産業と産業があり、多くの大学があります。私は、このクエリは、私の大学とそのindustries.Resultは今、このHABTM with join Cakephp

Array 
(
    [0] => Array 
     (
      [University] => Array 
       (
        [uni_id] => 1 
        [uni_name] => NYC 
       ) 

      [Industry] => Array 
       (
        [0] => Array 
         (
          [ind_id] => 1 
          [ind_name] => Finance 
          [UniversityIndustry] => Array 
           (
            [id] => 1 
            [uni_id] => 1 
            [ind_id] => 1 
           ) 

         ) 

        [1] => Array 
         (
          [ind_id] => 2 
          [ind_name] => Accounting 
          [UniversityIndustry] => Array 
           (
            [id] => 2 
            [uni_id] => 1 
            [ind_id] => 2 
           ) 

         ) 

       ) 

     ) 

ように見える返し

public function getAllUniv(){ 
    return $this->find('all', array(
     'order' => 'uni_id', 
     )); 
    } 

このクエリを実行して成功した結果を取得していますI持ってuni_idを持ってユーザーと呼ばれる別のテーブル外部キーとしても使用できます。だから私は、ユーザーのテーブルにある業界でそれらの大学だけを取得することができるクエリを探しています。だから、uni_idがユーザテーブルに存在する大学だけを取得してください。

私はどのように私のクエリにユーザテーブルに参加して結果を得ることができないのか分かりません。

これは瞬間

class University extends AppModel 
{ 

    public $useTable = 'university';  
    public $primaryKey = 'uni_id'; 

    public $hasAndBelongsToMany = array(
    'Industry' => 
     array(
      'className'    => 'Industry', 
      'joinTable'    => 'university_industry', 
      'foreignKey'    => 'uni_id', 
      'associationForeignKey' => 'ind_id', 
      'unique'     => true, 
      'conditions'    => '', 
      'fields'     => '', 
      'order'     => '', 
      'limit'     => '', 
      'offset'     => '', 
     ), 
     ); 
    public function getAllUniv(){ 
    return $this->find('all', array(
     'order' => 'uni_id', 
     )); 
    } 
} 

答えて

4

であなたの検索クエリでデータを結合することができますように私の大学のモーダルがどのように見えるかです。

$this->find('all', array(
    'order' => 'uni_id', 
    'joins' => array( 
     array(
     'table' => 'users ', 
     'alias' => 'UserJoin', 
     'type' => 'inner', 
     'conditions' => array(
      'UserJoin.uni_id = University.id' 
      ) 
     ), 
    )); 

ここはofficial docです。それがあなたを助けることを願っています

+0

ありがとう、あなたの答えをありがとう。ここでユーザーテーブルでグループを行うことはできますか? – hellosheikh

+0

ありがとうございます 'group '=> array(' UserJoin.uni_id ')' – tarikul05

+0

ありがとう – hellosheikh