2011-04-05 80 views
1

我按照教程about permissions代替CakePHP。 我不明白这个模型(查询)是如何工作的。CakePHP JOINS查询

任何人都可以解释我怎么这个查询工作..我找不到这个变量hasAndBelongsToMany确实。

<?php 
class Group extends Appmodel { 
    var $name = 'Group'; 
    var $useTable 'groups'; 
    var $hasAndBelongsToMany = array(
    'Permission' => array('className' => 'Permission', 
        'joinTable' => 'groups_permissions', 
        'foreignKey' => 'group_id', 
        'associationForeignKey' => 'permission_id', 
        'unique' => true 
        ) 
    'User' => array('className' => 'User', 
        'joinTable' => 'groups_users', 
        'foreignKey' => 'group_id', 
        'associationForeignKey' => 'user_id', 
        'unique' => true 
        ), 
       ); 
} 
+1

阅读本章的食谱:http://book.cakephp.org/view/1044/hasAndBelongsToMany-HABTM – JohnP 2011-04-05 11:43:36

回答

1

首先它不是查询。它是模型与其他模型关系的声明。

$ hasAndBelongsToMany表示数据库中的每个记录都与另一个表的多个记录相关联,并且来自其他表的多个记录也可以与当前记录相关联。

例如书可以有许多作者,作者可以有许多书。所以它可以与hasAndBelongsToMany相关。

你的情况组有很多用户,并且用户有很多组。相同的权限。