【发布时间】:2015-01-20 18:43:56
【问题描述】:
我正在使用 cakephp (2.4.7) 进行开发,但在组织控制器和模型以使用分页时遇到问题。
到目前为止,我将大部分逻辑放入模型中(瘦控制器,大模型)。在那里我将结果返回给控制器,在那里我设置变量以将其显示在视图上。
但现在我想使用分页。这打破了我的概念,因为我不能在模型中使用分页。
解决此问题的最佳解决方案是什么?我不想重新组织我的整个结构,因为我需要在很多不同的动作和模型中进行分页。
例如:
控制器用户,动作朋友
public function friends($userid = null, $slug = null) {
$this->layout = 'userprofile';
$this->User->id = $userid;
if (!$this->User->exists()) {
throw new NotFoundException(__('Invalid User'));
}
$this->set('friends', $this->User->getFriendsFrom($userid));
}
用户模型,函数 getFriendsFrom($user_from).. 我在不同的操作中需要这个方法。
public function getFriendsFrom($user_from) {
$idToFind = $user_from;
$data = $this->FriendFrom->find('all',
array(
'conditions'=>array(
'OR'=> array(
array('user_to'=> $idToFind),
array('user_from'=> $idToFind)
),
'AND' => array(
'friendship_status' => 1
)
),
'contain' => array('UserFrom.Picture', 'UserTo.Picture')
)
);
$friendslist = array();
foreach ($data as $i) {
if ($i['FriendFrom']['user_from'] == $idToFind){
$friendslist[] = $i['UserTo'];
}
elseif ($i['FriendFrom']['user_to'] == $idToFind){
$friendslist[] = $i['UserFrom'];
}
}
return $friendslist;
}
设计这个概念以使用分页的最佳方式是什么?
谢谢
【问题讨论】:
标签: php cakephp pagination cakephp-2.0