0

私は次のjsonを持っています:

{
   "Companies":[
      {
         "CompanyPersonTask":{
            "company_id":"502d1844-3638-44dc-824c-14f02e0cc009",
            "person_id":"2",
            "task_id":"1"
         },
         "Company":{
            "id":"502d1844-3638-44dc-824c-14f02e0cc009",
            "name":"mostro",
            "Office":[
               {
                  "id":"502d1844-b90c-44f5-84c5-14f02e0cc009",
                  "company_id":"502d1844-3638-44dc-824c-14f02e0cc009",
                  "region":"Emilia-Romagna",
                  "city":"Rozzemilia",
                  "address":"-",
                  "phone":"-",
                  "legal_office":true
               }
            ],
            "CompanyPersonTask":[
               {
                  "company_id":"502d1844-3638-44dc-824c-14f02e0cc009",
                  "person_id":"2",
                  "task_id":"1"
               }
            ]
         },
         "Person":{
            "id":"2",
            "first_name":"Carlo",
            "last_name":"Giusti",
            "home_address":"Russi",
            "job_address":null,
            "phone":null,
            "fax":null,
            "mail":null,
            "full_name":"Giusti Carlo",
            "OfficePersonTask":[

            ],
            "CompanyPersonTask":[
               {
                  "company_id":"502d1844-3638-44dc-824c-14f02e0cc009",
                  "person_id":"2",
                  "task_id":"1"
               }
            ]
         },
         "Task":{
            "id":"1",
            "short_name":"Proprietario",
            "full_name":null,
            "info":null,
            "OfficePersonTask":[

            ],
            "CompanyPersonTask":[
               {
                  "company_id":"502d1844-3638-44dc-824c-14f02e0cc009",
                  "person_id":"2",
                  "task_id":"1"
               }
            ]
         }
      }
   ]
}

これは、CompanyPersonTask モデル内のこのメソッドによって作成されます。

public function getCompaniesByRegion($region){
    $this->recursive = 2;
    return $this->find('all');   
} 

しかし、jsonを次のようにフォーマットしたい:

{
   "Companies":[
      {
         "Company":{
            "id":"502d1844-3638-44dc-824c-14f02e0cc009",
            "name":"mostro",
            "Office":[
               {
                  "id":"502d1844-b90c-44f5-84c5-14f02e0cc009",
                  "company_id":"502d1844-3638-44dc-824c-14f02e0cc009",
                  "region":"Emilia-Romagna",
                  "city":"Rozzemilia",
                  "address":"-",
                  "phone":"-",
                  "legal_office":true
               }
            ]
         },
         "Person":{
            "id":"2",
            "first_name":"Carlo",
            "last_name":"Giusti",
            "home_address":"Russi",
            "job_address":null,
            "phone":null,
            "fax":null,
            "mail":null,
            "full_name":"Giusti Carlo"
         }
      }
   ]
}

メソッドを変更するにはどうすればよいですか?

4

2 に答える 2

3

Containable 動作を使用して、結果データをフィルタリングします。詳細については、このリンクを参照してください。

于 2012-08-17T18:14:49.963 に答える
0

ケーキphpをチェックインunbindModelして、その場で関係を削除できます。これにより、不要なテーブルからのデータを防ぐことができます。これをチェックして。

<?php
$this->Model->unbindModel(
    array('associationType' => array('associatedModelClassName'))
);
于 2012-08-17T16:33:43.473 に答える