选择深度级别为2时显示的字段



在CakePHP中,我准备了一个Json Web服务。这是我得到的摘录:

{
   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或公司名称,而这又是更深一层呢?

如果模型之间存在关联,您应该能够使用:

$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

最新更新