CakePHPでは、find()
メソッドは、最初の形式のようなデータを返します。ただし、2番目のようにフォーマットする場合は、手動で処理する必要があります(可能な場合はこれを避けてください)
$data = $this->find('all');
$assocs = Set::extract('/User', $data); // extracting all `User` array
foreach($assocs as $key => $assoc) {
unset($data[$key]['User']); // removing the associate `User` from `$data`
$data[$key]['UserGroup']['User'] = $assoc['User']; // adding associate under `UserGroup`
}