2013-07-28 29 views
0

我在我的視圖函數的UserController中有以下內容。無法在Assosciated模型上篩選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. *

我已經閱讀了關於使用contains的一個視圖問題,但是我無法使其正常工作。

+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:不。爲了得到這個工作,需要一個連接。 – AD7six

+0

是的,謝謝。我忘了接受你的答案。 – AshHimself