现有cakephp应用中的分页策略

时间:2014-05-27 15:56:05

标签: cakephp pagination

问题: 我在我的应用程序中设计了我的模型和控制器,而没有记住cakePhp的内置分页。

考虑在公告控制器中简化我的索引方法:

public function index($room_id) {
    $this->set('room_id', $room_id);

    $tiles = $this->Announcement->getAnnouncementTiles($room_id);
    $this->set('tiles', $tiles);
}

执行简单查找的模型方法

protected function getAnnouncements($room_id) {

    $options['contain'] = array();
    $options['conditions'] = array(
        'room_id' => $room_id
    );
    $data = $this->find('all', $options);

    return $data;
}

从getAnnouncements操纵数据的模型方法,由控制器调用。

public function getAnnouncementTiles($room_id) {
    $datadump = $this->getAnnouncements($room_id);

    $i = 0;
    foreach ($datadump as $data) {
        $tiles[$i]['subject'] = $data['Announcement']['subject'];
        $tiles[$i]['name'] = $this->AppUser->getFullName($data['Announcement']['user_id']);
        $tiles[$i]['body'] = $data['Announcement']['body'];
        $tiles[$i]['created'] = $data['Announcement']['created'];
        $i++;
    }
    return $tiles;
}

问题:所以基本上我有控制器调用几种模型方法来操作数据,最终来自一个简单的查找调用。我应该遵循什么策略来保持我的分页代码简单(通过实现paginate()paginateCount()等来避免处理它的复杂性。如果我需要重新考虑我的代码,如何?我应该将其转换为自定义查找类型?

0 个答案:

没有答案