2016-03-19 6 views
1

Привет, у меня есть отношения в модели пользователя Like This.CakePHP Pagination Count Query Not Working

UserModel

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

У меня есть добавить дополнительные HasOne Отношения в MyConroller, как показано ниже:

контроллер

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

Я создать нумерацию страниц с моделью пользователя, как показано ниже :

Pagination

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

Я не хочу, чтобы запись которого событие идентификатор является недействительным, так что я положил это в состоянии постраничной. Чем ниже я ошибаюсь.

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

Модель события не отражает запрос графа для разбивки на страницы.

Пожалуйста, помогите мне в этом.

Заранее благодарим за помощь.

+0

'$ this-> User-> bindModel ([ \t 'hasOne' => [ \t \t 'событие' => [ \t \t \t 'Classname' => 'События', \t \t \t 'ForeignKey' => 'user_id', \t \t \t 'зависимой' => верно, \t \t], не\t 'условия' => [ '! Events.id =' => NULL, \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()