0

CakePHPでは、JsonWebサービスを用意しました。これは私が得たものの抜粋です:

{
   Offices:[
      {
         Office:{
            id:"1",
            Company:{
               id:"1",
               name:"ABC Software"
            }
         },
         Person:{
            mail:"sASa@sAAsS.it",
            OfficePersonTask:[
               {
                  office_id:"1",
                  person_id:"1",
                  task_id:"1"
               }
            ]
         }
      }
   ]
} 

私が欲しいのは、相対データベースの一部のフィールドのみを表示できるようにすることです。データベースをクエリするメソッドは$options['fields']適切に設定されているので、人のメールを表示したい場合は、次のように記述します。

$options['fields'] = array("Person.mail");

しかし、会社のIDまたは会社の名前を1レベル深く表示したい場合はどうすればよいですか?

4

1 に答える 1

0

モデル間に関連性がある場合は、次のようにすることができます。

$options['fields'] = array('Person.mail','Company.id','Company.name');

実は「会社が一段深い」とか関係ありません。これは、次のように SELECT 句に当てはまります (SQL 入門は一例であることに注意してください)。

SELECT Person.mail, Company.id, Company.name 
FROM Persons AS p
LEFT JOIN Company AS c ON p.company_id = c.id
于 2012-08-01T05:42:59.963 に答える