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

时间:2012-07-31 10:04:40

标签: cakephp-2.1

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

{
   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 个答案:

答案 0 :(得分: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