2017-12-06 3 views
1

に参加して、私はvar_dump($result->toArray());die; マイ配列表示、このような結果)(のvar_dumpしようテーブルCakePHPの3.3 - テーブルに私は、CakePHP 3.3使用してい

$this->find() 
->select([ 
    'TableA.id', 
    'TableA.user_id', 
    'TableA.note', 
    'TableB.log_date' 
]) 
->where([ 
    'TableA.user_id' => $userId 
]) 
->join([ 
    'table' => 'table_b', 
    'alias' => 'TableB', 
    'conditions' => 'TableA.table_b_id = TableB.id', 
]); 

に参加することで、データを取得しようとすると、ネストされたレベルを削除する方法:

"data": [ 
    { 
     "id": 1317, 
     "user_id": 331, 
     "note": "Take note", 
     "TableB": { 
      "log_date": "2017-11-16" 
     } 
     }, 
     { 
     "id": 1318, 
     "user_id": 331, 
     "note": "Take note", 
     "TableB": { 
      "log_date": "2017-11-16" 
     } 
     } 
    ], 

結果はTableBにネストされています。どのように入れ子を取り除き、このような表示をすることができますか:

"data": [ 
     { 
     "id": 1317, 
     "user_id": 331, 
     "note": "Take note", 
     "log_date": "2017-11-16" 
     }, 
     { 
     "id": 1318, 
     "user_id": 331, 
     "note": "Take note", 
     "log_date": "2017-11-16" 
     } 
    ], 

すべてのデータを同じレベルの配列で取得できますか?読んでくれてありがとう!

答えて

0

あなたはselect()

$result = $this 
    ->Articles 
    ->find() 
    ->select([ 
     'Articles.id', 
     'user_id' => 'users.id' 
    ]) 
    ->join([ 
     'table' => 'users', 
     'conditions' => 'users.id = Articles.user_id' 
    ]) 
    ->toArray(); 

に結果のサンプルを連想キーを使用して結合フィールドのエイリアスを作ることができます。

[{"id":26,"user_id":2},{"id":27,"user_id":2}] 
+0

はありがとうございました!それは働いている:)) – Kites

関連する問題