2013-07-28 3 views
0

У меня есть следующее в моем Usercontroller в моей функции просмотра.Невозможно фильтровать на ассоциированной модели cakePHP

$this->User->recursive = 2; 
    $options = array('conditions' => array('User.' . $this->User->primaryKey => $id, 'Step.site_id' => $this->Auth->user('site_id'))); 
    $this->set('user', $this->User->find('first', $options)); 

Его фильтр идеально подходит для модели пользователя, но просто игнорирует часть Step.site_id и ошибки, указывающие, что поле не существует.

Любые указатели, в которых я ошибаюсь? Я использую cakephp 2. *

Я уже прочитал вопросы по использованию, но я не смог заставить его работать правильно.

+0

Как связаны пользователи и шаги, что такое сообщение об ошибке, и что вы ожидаете в результате? – AD7six

+0

У пользователя много шагов, и ошибка в том, что Step.site_id не существует в схеме. – AshHimself

+0

, пожалуйста, не перефразируйте сообщения об ошибках (схема просто скопируйте и вставьте сообщение об ошибке и запрос, из которого он пришел, в вопрос). Этого следует ожидать - поскольку для этого не будет объединения - что именно вы пытаетесь получить 1) всех пользователей и их шагов, если он соответствует step_id 2) только пользователям с шаговой записью, соответствующей site_id? – AD7six

ответ

0

Мое предположение - «Шаг» не правильный псевдоним для отношений hasMany (. Вы должны поделиться дополнительной информацией Эта проблема включает в себя ваши определения модели и определения таблиц базы данных)

делает эту работу?

$this->User->recursive = 2; 
$options = array('conditions' => array('User.' . $this->User->primaryKey => $id, $this->User->Step->alias . '.site_id' => $this->Auth->user('site_id'))); 
$this->set('user', $this->User->find('first', $options)); 
+0

'Это работает?' Поскольку это hasMany: no. Для этого требуется соединение. – AD7six

+0

Да, спасибо. Я забыл принять ваш ответ. – AshHimself

Смежные вопросы