2016-03-19 55 views
1

你好我有這樣的用戶模型的關係。CakePHP分頁計數查詢不起作用

的usermodel

public $hasOne = [ 
     'Userdetail' => [ 
      'className' => 'Userdetail', 
      'foreignKey' => 'user_id' 
     ], 
     'Application' => [ 
      'className' => 'Application', 
      'foreignKey' => 'user_id' 
     ], 
    ]; 

我在下面MyConroller像添加額外的HasOne關係:

控制器

$this->User->bindModel([ 
      'hasOne' => [ 
       'Events' => [ 
        'className' => 'Events', 
        'foreignKey' => 'user_id', 
        'dependent' => true, 
       ] 
      ] 
     ]); 

我創建一個用戶模型像下面分頁:

分頁

$this->paginate = [ 
      'conditions' => [ 
       $this->conditions, 
       'Events.id !=' => null 
      ], 
      'order' => 'User.id DESC' 
     ]; 

我不希望記錄,其事件ID爲空,所以我把這個分頁條件。比我低於錯誤。

Unknown column 'Events.id' in 'where clause' 

事件的模型不反映在Count分頁查詢中。

請幫我解決這個問題。

在此先感謝您的幫助。

+0

'$這 - >用戶 - > bindModel([ \t 'hasOne'=> [ \t \t '事件'=> [ \t \t \t '的className'=> '事件', \t \t \t 'FOREIGNKEY'=> 'USER_ID', \t \t \t '依賴'=>真, \t \t], \t \t '條件'=> [ '!Events.id ='=>空, \t \t] \t] ]);'和'從分頁condition' –

+0

刪除它不,它是CakePHP的2.6 –

+0

我試試這個@ Anant,但它不起作用 –

回答

0

您必須添加false作爲第二個參數中bindModel,使更改永久:

$this->User->bindModel([ 
     'hasOne' => [ 
      'Events' => [ 
       'className' => 'Events', 
       'foreignKey' => 'user_id', 
       'dependent' => true, 
      ] 
     ] 
    ],false); 

否則CakePHP就會回覆到產生計數,這是從不同的第二個查詢前面定義的關係第一個檢索結果。

參見Model::bindModel()