2011-07-15 10 views
3

私は3つのテーブルusers,rolesおよびroles_usersを持っています。 roles_usersの表は、今私のモデルはModel_UserModel_RoleModel_User_Roleありuser_idrole_idKohanaで1対多の関係

を持っています。

すべてのユーザーが1つの役割に関連付けられ、1つの役割に多数のユーザーが含まれるように、3つのモデルをリンクするにはどうすればよいですか。

私はORMを使用しており、その役割の名前を持つユーザーのリストを表示したいと考えています。

注:表1は、AuthモジュールのKohanaから取得しました。

答えて

2

モデル間の関係を設定するには、$_belongs_to,$_has_oneおよび$_has_manyの配列を使用できます。 Kohana 3 :: ORM Relationships

+0

Model_User_Roleテーブルを除外しない理由を明示した場合、そのような関係を作成したい場合は、 フィールド「role_id」をユーザdbテーブルに追加し、 を保護$ _belongs_to = arry( \t 'role' \t => array( 'model' => 'role'、 'foreign_key' => 'role_id')に設定することができます。 、 )は、Model_Usersで ' と '保護$ _has_many = ARRY( \t 'ユーザ' \t =>配列( 'モデル' => 'ユーザ'、 'FOREIGN_KEY' => 'ROLE_ID')、 ); ' in Model_Role – Leonid

+0

私はKohanaのauthモジュールに従っています。そのテーブルは – jimy

+0

です。/modules/auth/classes/model/auth/user.phpと/ modules/auth/classesに基づいて独自の認証モデルを作ることができます/model/auth/role.phpを開き、必要な関係を設定します – Leonid

1

私はロールとユーザーとの関係を多面的に行いました。そして、ユーザーが複数の役割を持たないビジネスロジックを作成します。