Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp 2.1 选择深度级别为2时显示的字段_Cakephp 2.1 - Fatal编程技术网

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

Cakephp 2.1 选择深度级别为2时显示的字段,cakephp-2.1,Cakephp 2.1,在CakePHP中,我准备了一个Json Web服务。这是我得到的一个摘录: { Offices:[ { Office:{ id:"1", Company:{ id:"1", name:"ABC Software" } }, Person:{ mail:"sASa@sAA

在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子句中是正确的,比如:(注意,SQLPrimer就是一个例子)

SELECT Person.mail, Company.id, Company.name 
FROM Persons AS p
LEFT JOIN Company AS c ON p.company_id = c.id