在尝试制作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)
)
...
有什么想法吗?
答案 0 :(得分:1)
我认为你需要使用foreach
并循环结果来重建一个新的数组。
$user = array('id' => '1', 'name' => 'Jack');
$data = array();
foreach($permission as $per) {
$data[] = array($user, $per['Permission'])
}