2010-02-23 132 views
0

我在嘗試製作HABTM關係的列表(管理部分)時遇到了相當大的問題。這裏的交易:CakePHP HABTM關係清單

權限:ID,名稱; 用戶:id,用戶名; permissions_users:permission_id邀請,USER_ID

Permission HasAndBelongsToMany User

我想要像這樣的列表:

User.id | User.username | Permission.id | Permission.name
1 | Jack | 1 | posts
1 | Jack | 2 | comments
2 | Mark | 1 | posts
3 | Kate | 3 | tags

東西一樣:$this->Permission->User->find('all');(或者反過來)並未真正發揮作用,因爲它會獲取Jack的許多權限,另外圍繞它的另一種方式會獲取許多用戶的posts權限,因此無法在視圖中列出。

我想要的是得到像數組:

[0] = > array(
[User] => array([id] => 1 [username] => Jack)
[Permission] => array([id] => 1 [name] => posts)
)
[1] = > array(
[User] => array([id] => 1 [username] => Jack)
[Permission] => array([id] => 2 [name] => comments)
) ...

任何想法?

回答

1

我想你會需要使用foreach並循環你的結果來重建一個新的數組。

$user = array('id' => '1', 'name' => 'Jack'); 
$data = array(); 
foreach($permission as $per) { 
    $data[] = array($user, $per['Permission']) 
}