所以,我有1个视图,我需要为同一个模型的2个表进行分页,但条件不同。 e.g:
Task Model --> 1st pagination --just paginate task assigned to me
--> 2nd pagination --paginate task created by me
有没有这样做?
public function dashboard() {
$this->layout = 'user';
$limit = 5;
//debug($this->Session->read('Auth.User.id'));
//debug($this->Session->read('Auth.User.group_id'));
//My Task Pagination
$this->paginate = array(
'Project' => array(
'limit' => $limit,
//'contain' => array('ProjectReminderUser.user_id =' . $this->Session->read('Auth.User.id')),
'conditions' => array(
'User.group_id' => $this->Session->read('Auth.User.group_id'),
//'ProjectReminderUser.user_id' => $this->Session->read('Auth.User.id'),
),
)
);
$this->set('myTasks', $this->paginate('Project'));
//debug($this->paginate('Project'));
//Group Task Pagination
$this->paginate = array(
'Project' => array(
'limit' => $limit,
//'contain' => array('ProjectReminderUser.user_id =' . $this->Session->read('Auth.User.id')),
'conditions' => array(
'User.group_id' => $this->Session->read('Auth.User.group_id'),
//'ProjectReminderUser.user_id' => $this->Session->read('Auth.User.id'),
),
)
);
$this->set('groupTasks', $this->paginate('Project'));
//debug($this->paginate('Project'));
}
此代码尚未区分条件。 但我想知道如何做到这一点。因为使用我当前的代码,每次我尝试排序或移动页面时,由于相同的模型,它对两个表都会做同样的事情。
答案 0 :(得分:1)
几天前我遇到了同样的问题。根据我的经验,我找到了http://deadlytechnology.com/php/paginate-multiple-data-sets/到目前为止的最佳解决方案。虽然这是一个非常古老的帖子,但我认为这是所有类型的多重分页的最佳解决方案,即相同的模型多重分页,多个模型相同的视图分页等。
<强>解决方案:强> 使用CakePHP照常加载一个分页。另一个使用来自任何控制器的另一个动作的AJAX请求加载。如果您对两个分页使用AJAX分页,它将具有交互性和意义。
答案 1 :(得分:0)
你可以在Model :: find()params'page'中看到并限制:
例如:
$params=array('conditions'=>$conditions,'limit'=>$limitByPage,'page'=>$page );
$this->Model->find('all',$params);
只需设置$ limitByPage和$ page。 如果你想知道页面的数量,只需找到“count”/ $ limitByPage。
答案 2 :(得分:0)
您可以使用多个iframe独立加载分页。 我知道它已经很晚了,但希望可以帮助那些遇到这个问题的人。