2017-02-28 7 views

答えて

0

はいできます。しかし、私はあなたがなぜこのようなことを次善のものにしたいのか理解できません。

1. FULL ORM:

$users = ORM::factory('Auth_User')->find_all(); 
foreach($users as $user) { 
    $roles = $user->roles->find_all(); 
    foreach($roles as $role) 
     $role->name; 
} 

2.ユニバーサルSQL(ヒント):

SELECT * FROM users 
INNER JOIN user_roles USING(user_id) 
INNER JOIN roles USING(role_id) 
ORDER BY users.name 

結果:

  • ROLE_1 USER_1
  • USER_1 role_2
  • USER_2 role_x

3.簡単表示SQL(しかし、あなたはすべての追加新しい役割にコードを変更)

SELECT users.*, IF(r1.user_id IS NULL, 0, 1) AS role1, IF(r2.user_id IS NULL, 0, 1) AS role2, IF(rn.user_id IS NULL, 0, 1) AS rolen FROM users LEFT JOIN (SELECT user_id FROM user_roles where role_id = 1) AS r1 USING(user_id) LEFT JOIN (SELECT user_id FROM user_roles where role_id = 2) AS r2 USING(user_id) LEFT JOIN (SELECT user_id FROM user_roles where role_id = n) AS rn USING(user_id)

結果: username | role1 | role2 | rolen user1 | 1 | 0 | 0 user2 | 0 | 1 | 1

関連する問題