yii2中的分页
利用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"=>"上一页",
]); ?>效果图:
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: thinkphp模板页面多条件if判断的写法
- 下一篇: mysql查询大量数据,php内存占用溢…
