Phalcon包含json中的关系

时间:2014-11-22 21:39:59

标签: phalcon

我一直在研究phalcon作为我正在运行的laravel项目的替代方案。它主要是一个REST api。我正试图弄清楚如何在模型的json响应中包含关系。

例如,如果我有2个模型,请按以下方式设置:

class Clients extends \Phalcon\Mvc\Model
{

  public function initialize() {
     $this->hasMany('clientid','Contacts','clientid')
  }

}

class Contacts extends \Phalcon\Mvc\Model {

  public function initialize() {
    $this->belongsTo('clientid','Clients','clientid')
  }
}

我做了一个:

$clients = Client::find();
return json_encode($clients->toArray());

如何让它自动包含联系人?

我需要输出这样的东西:

 [{
   clientid:'1111',
   contacts:[
      {
      contactid:111
      }
   ]
 }];

非常感谢!

1 个答案:

答案 0 :(得分:0)

来自docs

  

通过访问与关系同名的属性,将检索其所有相关记录。

基于以上所述,您应该能够通过如下定义的关系访问联系人:

$clients = Client::find();
$clientContacts = $clients->contacts;
// do something with the contacts

编辑:

尝试遍历您的$ contacts,然后获取相关记录:

foreach ($clients as $client) {
    // Do something with the contacts...
    $contacts[$client->id] = $client->contacts;
}