您好,我在用户模型中有这样的关系。
的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为null的记录,所以我把它放在分页状态。比我得到以下错误。
Unknown column 'Events.id' in 'where clause'
事件的模型未反映在分页的Count查询中。
请帮助我解决这个问题。
先谢谢你的帮助。
答案 0 :(得分:0)
您必须在false
中添加bindModel
作为第二个参数才能永久更改
$this->User->bindModel([
'hasOne' => [
'Events' => [
'className' => 'Events',
'foreignKey' => 'user_id',
'dependent' => true,
]
]
],false);
否则,CakePHP将恢复到生成计数的第二个查询中先前定义的关系,这与检索结果的第一个查询不同。