CakePHP HABTM关系列表

时间:2010-02-23 15:19:27

标签: cakephp model associations has-and-belongs-to-many

在尝试制作HABTM关系的列表(针对管理部分)时,我遇到了很多问题。这是交易:

权限:id,name; 用户:id,username; 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获取许多用户{1}}权限,因此无法在视图中列出。

我想要的是获得如下数组:

[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 个答案:

答案 0 :(得分:1)

我认为你需要使用foreach并循环结果来重建一个新的数组。

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