PHP应用程序中的PHP分页


PHP pagination in php application

我使用PHP-MVC(https://github.com/panique/mini)对于小型项目,主要是针对结构,因为我喜欢设计模式,但我很难在其中实现我一直使用的分页类。我使用以下内容:https://daveismyname.com/pagination-with-a-php-class-bp#.VNzLzZ2sWWA

我通过application.php加载这个类,基本上是一个引导文件来加载这个类和其他一些文件。在我的模型中,我有以下内容:

    public function pagi()
{
    $pages = new Paginator('30','p');
    //get number of total records
    $sql = 'SELECT count(id) FROM albums';
    $query = $this->db->prepare($sql);
    $query->execute();
    $row = $query->fetch(PDO::FETCH_NUM);
    $total = $row[0];
    //pass number of records to
    $pages->set_total($total); 
    $sql = 'SELECT * FROM albums '.$pages->get_limit();
    $query = $this->db->prepare($sql);
    $query->execute();
    $data = $query->fetchAll();
    //create the page links
    echo $pages->page_links();
    return $data;
}

在我的控制器中,我正在调用以下内容:

$albums_model = $this->loadModel('AlbumsModel');
$albums = $albums_model->pagi();

在我看来(出于调试目的),我只是简单地循环如下:

<?php 
print_r($albums); 
?>

现在困扰我的部分是模型中的这一部分:

echo $pages->page_links();

显然,无论如何我都不应该直接从模型中回显输出,但我不确定在视图中实现这一点的最佳方式是什么?

我现在已经想好了,我只返回一个多维数组,如下所示:

return array('pages' => $pages, 'data' => $data);

然后在控制器中拾取这些阵列,并将它们分离为两个变量,这两个变量被传递给视图:

$arrays = $albums_model->pagi();
$albums = $arrays['data'];
$pages = $arrays['pages'];

然后在需要时简单地循环或回声输出。