Запрос CakePHP с несколькими объединениями - PullRequest
0 голосов
/ 20 марта 2012

Интересно, есть ли лучший способ добиться этого:

$rights = $this->User->Role->Right->query(
    "SELECT ri.*
    FROM rights AS ri 
    LEFT JOIN roles_rights AS rr ON rr.right_id = ri.id 
    LEFT JOIN users_roles AS ur ON ur.role_id = rr.role_id
    WHERE ur.user_id = " . Sanitize::clean($user['User']['id']));

Я надеюсь, что есть лучший способ получить все права для конкретного пользователя.

Я быхотел бы получить доступ к правам через $ this-> User -> ... Возможно ли это?

У пользователя есть одна или несколько ролей, а у роли одно или несколько прав.

1 Ответ

0 голосов
/ 20 марта 2012

Попробуйте перевернуть его:

$rights = $this->User->Role->Right->query(
  SELECT ri.* 
  FROM users_roles AS ur
  INNER JOIN roles_rights AS rr ON rr.role_id = ur.role_id
  INNER JOIN rights ri ON ri.id = rr.right_id
  WHERE ur.user_id = Sanitize::clean($user['User']['id']));
...