У меня есть объект $this->user
модели User
.Этот объект заполняется $this->Auth->user
в контроллере моего приложения следующим образом:
$this->user = ClassRegistry::init('User');
$this->user->set($this->Auth->user);
Работает как шарм.Если я выводю $ this-> user в моем контроллере, он дает мне:
User Object ( [validate] => Array ( blah blah blah
Типичный объект.Теперь у меня есть модель Group
, которая принадлежит User
, и у пользователей много групп.Эти переменные правильно установлены в моделях.Теперь я хочу найти все группы для этого конкретного пользователя, который вошел в систему. Поэтому я попробовал это:
$groups = $this->user->Group->find('list', array('fields'=>array('id', 'group_name')))
Ключ в том, что я хочу использовать $ this-> user дляавтоматически фильтровать групповой запрос на основе owner_id в $ this-> user.Для меня имеет смысл, что если у меня есть конкретный объект, представляющий пользователя, и я делаю групповой запрос на основе этого пользователя ... он должен возвращать только соответствующие группы.
Проблема в том, что $ groupsсодержит все записей в таблице групп, а не те, которые я хочу только от текущего пользователя.Я не понимаю, почему мне нужно добавить параметр "conditions"=>"user_id"=$this->Auth->user('id')
в функцию поиска, потому что я уже указал, какого пользователя я использую через цепочку моделей.
Любые идеи, почему это не работает?SQL-оператор, который он запускает, представляет собой просто SELECT для групп, где 1 = 1 (поэтому вообще не фильтруется).