牛骨文教育服务平台(让学习变的简单)
博文笔记

yii2中的分页

创建时间:2016-06-24 投稿人: 浏览次数:189

利用yii做分页,其中有分装好的分页,按照我的步骤来,利用它的封装做分页非常简单;

话不多说,看步骤:

1 在框架中配置好你的数据库、用户名、密码

在common/config/main-local.php 中

<?php
return [
    "components" => [
        "db" => [
            "class" => "yiidbConnection",
            "dsn" => "mysql:host=localhost;dbname=ten",//数据库mysql 服务器地址:lovalhost 数据库名ten
            "username" => "",//用户名
            "password" => "",//密码
            "charset" => "utf8",
        ],
        "mailer" => [
            "class" => "yiiswiftmailerMailer",
            "viewPath" => "@common/mail",
            // send all mails to a file by default. You have to set
            // "useFileTransport" to false and configure a transport
            // for the mailer to send real emails.
            "useFileTransport" => true,
        ],
    ],
];
2 创建控制器文件

 两种方式,一种直接用gii生成控制器文件,简单快捷,当然需要注意控制器的名称,控制器的命名空间,然后直接生成就可以了;

第二种,就是自己创建控制器,当然也可以这样做,但我不建议这样,首先既然用yii框架了,就尝试一下用里面的东西,第二比较费时间;

创建一个控制器,写好命名空间,然后在视图层文件夹中创建与控制器相同的文件夹,用来存放视图层文件

即:

<?php

namespace frontendcontrollers;//命名空间

use Yii;
use frontendmodelshoukao2;//加载model层
use  yiidataPagination; //加载分页类


class Zhoukao2Controller extends yiiwebController
{
    public function actionIndex()
    {
        
    }
}

3 创建模型层文件(即你的表)

也是两种方式,一种直接用gii生成控制器文件,简单快捷,需要注意model的名称,控制器的命名空间,然后直接生成就可以了;

第二种,就是自己创建model文件。

<?php

namespace frontendmodels;//命名空间

use Yii;

/**
 * This is the model class for table "zhoukao2".
 *
 * @property integer $id
 * @property string $username
 * @property string $sex
 * @property string $hobby
 * @property string $content
 */
class Zhoukao2 extends yiidbActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()//必须创建这个方法 用来返回表
    {
        return "zhoukao2";
    }
}

4 使用yii分页

不说了,看代码

<?php

namespace frontendcontrollers;//命名空间

use Yii;
use frontendmodelshoukao2;//加载model层
use  yiidataPagination; //加载分页类


class Zhoukao2Controller extends yiiwebController
{
    //展示留言添加页面
    public function actionIndex()
    {
        $query = Zhoukao2::find();
	    $countQuery = clone $query;
	    $pages = new Pagination(["totalCount" => $countQuery->count(),"pageSize"=>2]);
	    $models = $query->offset($pages->offset)
	        ->limit($pages->limit)
	        ->all();

	    return $this->render("index", [
	         "model" => $models,
	         "pages" => $pages,
	    ]);
    }
}

5 视图层文件 index.php

<?php 
use yiiwidgetsLinkPager;//加载分页类
 ?>
 <h2>留言类表</h2>
<?php 
	foreach ($model as  $v) {
		echo "<table border=1 style="margin-top:20px">";
		echo "<tr>";
		echo "<td>姓名:".$v["username"]."</td>";
		echo "<td>性别:".$v["sex"]."</td>";
		echo "<td>爱好:".$v["hobby"]."</td>";
		echo "</tr>";
		echo "<tr>";
		echo "<td colspan="3">内容:".$v["content"]."</td>";
		echo "</tr>";
		echo "</table>";
	}
 ?>

<?php // 显示分页
echo LinkPager::widget([
    "pagination" => $pages,
        "class"=>"CLinkPager", 
        "firstPageLabel"=>"首页", 
        "lastPageLabel"=>"末页", 
        "nextPageLabel"=>"下一页", 
        "prevPageLabel"=>"上一页",
]); ?>

效果图:


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。