我正在使用CakePHP构建一个json Rest api。它工作得很好,除了我似乎无法获得适当的响应结构。
我有两个表:用户和个人资料。用户拥有一个配置文件。配置文件有一个外键。 模型:Users.php(公共$ hasOne ='Profile'),Profiles.php 控制器:UsersController.php
回复是:
[2] => Array
(
[User] => Array
(
[id] => 3
[firstname] => test
[lastname] =>
[email] =>
[password] =>
[created] => 2012-09-04 16:44:04
[modified] => 2012-09-04 16:44:04
)
[Profile] => Array
(
[id] =>
[skill] =>
[user_id] =>
)
)
我真的希望回复是这样的:
[2] => Array
(
[User] => Array
(
[id] => 3
[firstname] => test
[lastname] =>
[email] =>
[Profile] => Array
(
[id] =>
[skill] =>
[user_id] =>
)
)
)
我查看了join(),bind(),containsable ...我似乎无法找到嵌套表的解决方案。任何想法让Profile都嵌套在Users中?
答案 0 :(得分:1)
Cakephp不会这样做,因为它不是用于管理数据的结构。你必须手动完成。如果您正在使用单个结果(由find('first')
给出)尝试这样的事情(我还没有测试过):
$result = $this->User->find('first', array('conditions' => array('User.id' => 1)));
Set::insert($result, 'User.Profile', $result['Profile']);
uset($result['Profile']);