2010-02-23 3 views
0

У меня возникла проблема при попытке составить список (для раздела admin) отношений HABTM. Вот сделка:CakePHP HABTM relations listing

разрешений: 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, что делает невозможным перечислить его в представлении.

То, что я хочу, чтобы получить массив как:

[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']) 
}