CakePHP Pagination Count Query не работает

Здравствуйте, у меня есть отношения в пользовательской модели, как это.

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,
]
]
]);

Я создаю пагинацию с моделью User, как показано ниже:

пагинация

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

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

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

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

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

Заранее спасибо за помощь.

1

Решение

Вы должны добавить false в качестве второго параметра в bindModel сделать изменения постоянными:

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

В противном случае CakePHP вернется к ранее определенным отношениям во втором запросе, который производит счет, который отличается от первого, который получает результаты.

Увидеть Model::bindModel()

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector