tec*_*_28 0 php pagination cakephp cakephp-1.3
我试图强制加入cakephp的paginate函数.用户有消息,这意味着消息属于用户.我必须在列表中显示它们,所以我需要在这里使用paginate.问题是它没有显示我打算绑定的模型的记录我的代码是:
$userId = $this->Session->read('SESSION_ADMIN.id');
$this->helpers['Paginator'] = array('ajax' => 'Ajax');
$this->Message->bindModel(
array(
'belongsTo'=>array(
'Npo'=>array(
'className' => 'Npo',
'foreignKey' => 'reciever_id',
'fields' => 'Npo.username'
)
)
)
);
$this->paginate = array('conditions'=>array('Message.sender_id'=>$userId,'Message.sender'=>'Admin'),
'order' => array('Message.modified DESC'),
'limit' =>'1'
);
$sentMsg = $this->paginate('Message');
//$sentMsg = $this->Message->find('all');
pr($sentMsg);die();
Run Code Online (Sandbox Code Playgroud)
当我取消注释FIND语句时,它会显示我的记录但是在分页的情况下它不会.它也没有显示我在分页查询中的连接,但它在计数记录中.任何人都有一个想法.我不想使用分页加入这里.有没有办法强制属于这里?
关心Himanshu Sharma
你有没有尝试过:
$this->Message->bindModel(
array(
'belongsTo'=>array(
'Npo'=>array(
'className' => 'Npo',
'foreignKey' => 'reciever_id',
'fields' => 'Npo.username'
)
)
), false // Note the false here!
);
Run Code Online (Sandbox Code Playgroud)
分页器实际上执行两个查询:一个用于计算记录总数,另一个用于实际获取所需记录.默认情况下,bindModel()
在每次查询后都会重置使用中创建的关联.这取决于查询首先出现的Cake版本,但我相信在你的情况下它是count查询; 离开实际结果查询没有关联.设置false
on bindModel()的第二个参数可防止在第一个查询后重置关联.