У меня есть объект $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 содержит все записи в таблице Groups, а не те, которые мне нужны только от текущего пользователя. Я не понимаю, зачем мне нужно добавлять параметр "conditions"=>"user_id"=$this->Auth->user('id')
в функцию поиска, потому что я уже указал, какого пользователя я использую через цепочку моделей.
Любые идеи, почему это не работает? Статус sql, который он запускает, - это просто SELECT для групп, WHERE 1 = 1 (поэтому вообще не фильтруется).