CakePHP分页计数查询不起作用

时间:2016-03-19 10:48:30

标签: php pagination cakephp-2.0 cakephp-2.6

您好,我在用户模型中有这样的关系。

的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查询中。

请帮助我解决这个问题。

先谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您必须在false中添加bindModel作为第二个参数才能永久更改

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

否则,CakePHP将恢复到生成计数的第二个查询中先前定义的关系,这与检索结果的第一个查询不同。

请参阅Model::bindModel()