Yii2 中的分页

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

话不多说,看步骤:

配置数据库

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

在common/config/main-local.php 中

<?php
return [
    'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=ten',//数据库mysql 服务器地址:lovalhost 数据库名ten
            'username' => '',//用户名
            'password' => '',//密码
            'charset' => 'utf8',
        ],
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            '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,
        ],
    ],
];

 

创建控制器

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

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

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

<?php

namespace frontend\controllers;//命名空间

use Yii;
use frontend\models\Zhoukao2;//加载model层
use  yii\data\Pagination; //加载分页类


class ExaminationController extends \yii\web\Controller
{
    public function actionIndex()
    {
        
    }
}

 

创建模型层

模型层对应数据表

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

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

<?php

namespace frontend\models;//命名空间

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 Examination extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()//必须创建这个方法 用来返回表
    {
        return 'examination';
    }
}


实现yii分页

代码如下:

<?php

namespace frontend\controllers;//命名空间

use Yii;
use frontend\models\Zhoukao2;//加载model层
use  yii\data\Pagination; //加载分页类


class ExaminationController extends \yii\web\Controller
{
    //展示留言添加页面
    public function actionIndex()
    {
        $query = Examination::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,
	    ]);
    }
}


视图层文件

视图文件index.php

<?php 
use \yii\widgets\LinkPager;//加载分页类
 ?>
 <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'=>'上一页',
]); ?>


效果图:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值