2017-10-08 4 views
0

私は変更は私がコントローラー・コードcakephpのjson配列名を変更するには?

if ($this->request->is('get')) { 
    $itemname= $this->request->query('item_name'); 
    $searchitem = $this->MbPriceList->find('all') 
       ->contain(['MbItemList' => function ($q) { 
        return $q->select(['item_name']); 
       }]) 
       ->select(['MbItemList.item_name', 'id']);  
    $this->set([ 
     'response' => $searchitem, 
     '_serialize' => ['response'] 
    ]); 
    } 

答えて

1

Iを共有

ここ
{ 
     "id": 1, 
     "name": "Something" 

    } 

にコード

 { 
     "id": 1, 
     "mb_item_list": { 
      "item_name": "Something" 
     } 
    } 

例えばコードの下

のためのJSONの名前を変更したいですあなたはファインダーのオプションの内側にfieldsを使うことができると思います。 Fieldsは、私たちはデータベースフィールドのエイリアスを生成することができますし、ネストされた配列を避けることに役立ちます:この方法で生成された

$searchitem = $this->ModelA->find('all' , [ 
      'fields' => [ 
       'id', 
       'name' => 't1.whatever' 
      ], 
      'join' => [ 
       'table' => 'model_b', 
       'alias' => 't1', 
       'type' => 'INNER', 
       'conditions' => [ 
        't1.id = ModelA.id' 
       ] 
      ] 
     ]) 
    ->toArray(); 

出力例:

[ 
    { 
     "id":1, 
     "name":"Config" 
    }, 
    { 
     "id":2, 
     "name":"Dashboard" 
    }, 
    { 
     "id":3, 
     "name":"Files" 
    } 
] 
関連する問題