2016-03-19 17 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, 
       ] 
      ] 
     ]); 

を、私は以下のようにUserモデルで改ページを作成しています:

ページネーション

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

私は、そのイベントID私は改ページ条件でこれを置くように、NULLであることを記録したくありません。私は以下のエラーを受けました。

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

イベントのモデルがページ番号のCountクエリに反映されていません。

この懸念について私を助けてください。

私を助けてくれてありがとうございます。

+0

'ます$ this-> USER-> bindModel([ \t 'hasOneの' => [ \t \t 'イベント' => [ \t \t \tが 'className' => 'イベント' を参照してください、 \t \t \t 'のForeignKey' => 'USER_ID' \t \t \t] '依存'、=>真 \t \t、 \t \t '条件' => [ 'Events.id =!' => nullで、 \t \t] \t] ]); 'と'いいえ、それは私がこれを試してみてくださいCakePHPの2.6 –

+0

ページ付けから削除し@ Anantが動作していません –

+0

ではありませんcondition' –

答えて

0

あなたが変更を永続的にするためにbindModelで2番目のパラメータとしてfalseを追加する必要があります。

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

そうでない場合はCakePHPは異なる数を、生成2番目のクエリでは、以前に定義された関係に戻ります結果を取得する最初のものです。

Model::bindModel()

関連する問題