2016-11-16 7 views
0

私は3つのテーブルuser、attributesとuser_attributesを持っています。Cakephp Complexクエリのビルド

users[id, name, username, password, dob, gender, isactive, registered_on], 
attributes[id, name, isactive], 
user_attributes[id, user_id, attribute_id] 

これは、フィールドを含む私のテーブル構造です。 user_attributesテーブルにすべての行が存在する場合、user_attributesテーブルの値と共に、すべてのユーザをユーザテーブルからフェッチするクエリを作成します。

cakephpにクエリを書き込む方法は? 私は2つのモデルUserAttributeを持っています。

ありがとうございます。

答えて

0

は、次の手順に従います。

テーブルuser_attributesのためのモデルUserAttributeを1-作成します。お使いのユーザーモデルで

class UserAttribute extends AppModel{ 

} 

2-があなたのコントローラにクエリを見つけるのですか

class User extends AppModel{ 

    public $hasMany = array(
      'UserAttribute' => array(
      'className' => 'UserAttribute', 
      'foreignKey' => 'user_id', 

      ), 

    ); 

} 

、3- UserAttribute

でhasManyの関連付けを作成します。

$users= $this->User->find('all'); 
echo "<pre>"; 
print_r($users); 
+0

http://stackoverflow.com/questions/ 26312583/cakephp-3-raw-sql-query –

+2

@VikashAmbani CakePHPは関連の自動読み込みをサポートしているので、明示的に必要とされない場合は生のSQLクエリを使用するのは良い考えではありません。問題はOPが実際に必要とするものです。 – ndm

+0

@ Vikashまた、それぞれのモデルの関係に属している.. –