表中像這樣的動作:CakePHP的2.0 - 如何刪除加入我使用中可容納來自中可容納
public function index()
{
$this->User->recursive = -1;
$this->User->Behaviors->load('Containable');
if ($this->RequestHandler->accepts('xml'))
{
$this->set('users', array("Users" => array("UserEntry" => $this->User->find('all',
array(
'fields' => array('User.id','User.username', 'User.email', 'User.created', 'User.modified'),
'contain' => array(
'Group' => array(
'fields' => array('Group.id','Group.name','Group.created'),
)
)
)
))));
}
else if ($this->RequestHandler->accepts('json'))
{
}
else if ($this->RequestHandler->accepts('html'))
{
$this->set('users', $this->paginate());
}
}
它得到我需要的所有數據,但有一兩件事,我不能弄清楚。用戶和組之間有一個HABTM關係,並且有一個連接表users_groups。我將視圖中的find('all')輸出序列化爲Xml中的REST Api。問題是數據包含嵌套在我的「組」數組中的額外'GroupsUser'數組。 Api的用戶不需要知道連接表信息,所以我想刪除它。電流輸出是這樣的:
index.ctp index.ctp的
<?php
//debug($users);
$xml = Xml::build($users, array('return' => 'domdocument'));
echo $xml->saveXML();
?>
輸出 - >http://www.pastie.org/2789367
見嵌套在組標籤的GroupsUser標籤?這是我想要刪除的。如果沒有一個簡單的方法可以做到這一點,我將使用視圖中的一些循環手動構建xml,或者在模型中創建我自己的find方法,並在GroupsUser上使用unset()。這兩種解決方案都不理想,所以我希望這裏有人有更好的解決方案。 :)
我有連接表的原因是因爲它是一個HABTM關係。我試過鏈接,但沒有留下深刻的印象。真的只是一個更簡單的方法來使用find()選項中的「連接」功能。我不認爲沒有加入users_groups表就可以獲得數據。儘管謝謝你的迴應。 – dubvfan87