我正在尝试将 CakePHP 配置为我正在编写的应用程序的 REST API。
我有 3 张桌子:
dishes {
id,
name,
description
}
users {
id,
name,
email
}
dishes_users {
id,
user_id,
dish_id
}
我希望这样,当有人访问 /users/1.xml 时,返回的数据只是用户在“dishes_users”表中的“菜肴”列表,我不希望用户或 disc_users 中的任何内容在那里,只有菜肴表的 ID、名称和描述。
最后,xml结构必须是:
<dishes>
<dish id="1" name="whatever" description ="This is a description"/>
<dish id="2" name="whatever" description="This is another description"/>
</dishes>
这是目前我在用户模型中使用的关系:
var $hasAndBelongsToMany = array(
"Dish" => array(
'className' => 'Dish',
'joinTable' => 'dishes_users',
'foreignKey' => 'user_id',
'associationForeignKey' => 'dish_id',
'unique' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
));
在控制器中我有:
function view($id) {
$dishes = $this->User->findAllById($id);
$this->set(compact('beers'));
}
这给了我我想要的东西,但它也给了我很多我不想要的东西。我需要的只是菜品清单。
感谢您的帮助,这一直让我发疯。