文档章节

Yii2实用基础学习笔记(三):Url助手与分页组件

程序谱写人生
 程序谱写人生
发布于 2016/07/03 15:27
字数 628
阅读 6
收藏 0

Url助手

  • 一些方法

Test控制器下新建一个actionUrl操作用来测试:

//不带域名根目录
//echo Url::base();

//带域名的根目录
//echo Url::base(true);

//不带域名的首页
//echo Url::home();

//带域名的首页
//echo Url::home(true);

//当前url
//echo Url::current();
  • Url::to()和Url::toRoute()
//Url::to和Url::toRoute都是生成Url,to的第一参数需要是数组,否则会被当做url
//第二个参数都是生成带域名的url
//没有传控制器默认为当前控制器
echo Url::to(['site/index'])."<br />";
echo Url::to(['site/index'],true)."<br />";
echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name'])."<br />";
echo Url::to(['@app', 'id' => 100])."<br />";

echo '<hr />';
echo Url::toRoute(['site/index'])."<br />";
echo Url::toRoute(['site/index'],true)."<br />";
  • Url::remember()记住当前url

分页组件

我们往article表中多插入一些数据:

INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题3','测试描述3','测试内容3');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题4','测试描述4','测试内容4');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题5','测试描述5','测试内容5');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题6','测试描述6','测试内容6');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题7','测试描述7','测试内容7');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题8','测试描述8','测试内容8');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题9','测试描述9','测试内容9');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题10','测试描述10','测试内容10');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题11','测试描述11','测试内容11');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题12','测试描述12','测试内容12');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题13','测试描述13','测试内容13');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题14','测试描述14','测试内容14');
INSERT  INTO `yii2basic`.`article`(`title`,`desc`,`content`) VALUES('测试标题15','测试描述15','测试内容15');

在actionUrl操作中通过DB查询和\yii\data\Pagination组织分页信息:

//AR构建DB查询
$article = Article::find();
$articleCount = clone $article;
$pageSize = 5;

$pages = new \yii\data\Pagination([
	'totalCount'=>$articleCount->count(),
	'pageSize'=>$pageSize
]);

$models = $article->offset($pages->offset)
	->limit($pages->limit)
	->all();
		
return $this->render('url',[
	'models' => $models,
	'pages'  => $pages
]);

在@app\views\test目录下新建url.php:

<?php
	use yii\widgets\LinkPager;
?>

<section>
	<?php
		//获取数据
		foreach($models as $model){
			echo $model->title;
		}

	?>
</section>

<?=LinkPager::widget([
	'pagination'=>$pages,
	'options'=>[
		'class' => 'pagination'
	]
]);?>

得到结果:

分页结果

© 著作权归作者所有

程序谱写人生
粉丝 3
博文 73
码字总数 70864
作品 0
海淀
程序员
私信 提问
详解Yii2框架中生成URL的方法

前言 在项目中,推荐使用 Yii2 内置的 URL 工具类生成链接,这样可以非常便捷的管理整站的 URL 行为:比如通过修改配置改变整站的URL格式等。URL 更多高级的用法参见官方文档,这篇文章仅仅介...

botkenni
2018/06/07
30
0
技术积累笔记概要

2015年11月24日 1、rest 速率限制,写属于自己的方法。 2、actions方法深刻了解。 3、YII技术博客:http://blog.csdn.net/terrywater/article/category/2565815。 4、静态方法传递参数的习惯...

风清扬-深圳
2015/11/24
79
0
实用的Laravel Debug调试工具

转载请注明: 转载自Yuansir-web菜鸟 | LAMP学习笔记 本文链接地址: 实用的Laravel Debug调试工具 主要推荐laravel几个适合开发调试用的工具 1.Clockwork 首先Chrome 插件 Clockwork 安装 Co...

Yuansir
2015/01/19
617
2
Yii2的一些小坑---关于跳转和助手类的灵活使用

YII本身的跳转很灵活。一般的MVC出现跳转的也不外乎: (1)V->V 页面之前的跳转 (2)C->V 正常的MVC方式 (3)V->C 请求数据接口数据传参,我还是一般都会用JS的ajax实现 这三种也都逃不了...

0_0Loong
2018/01/15
705
0
Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试

环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewritemodule modules/modrewrite.so 将其前面的#去掉,如果没有找到则添加...

沧海野狼
2016/09/01
145
0

没有更多内容

加载失败,请刷新页面

加载更多

iOS苹果应用IPA一键签名工具及重签教程

开心签名工具,是一款跨平台ios签名和重签名工具。 同时支持在windows、linux、mac运行,数据同步,方便使用及管理! 开心重签名工具官网 功能特点 1、支持图形界面及命令行重签(部署到服务...

tintong
7分钟前
2
0
2.4G有源卡核心芯片供应商

有源2.4G RFID的防盗标签,在与无源标签相比较,通信距离远,通信时效高。我司的SI24R2E这颗芯片专门为2.4G有源标签而设计,具有低功耗,发送距离远,厂商设计简单等优势;广泛应用于现在城市...

文刀石
13分钟前
2
0
设置Ubuntu16.04启动为命令行界面

1. 修改/etc/default/grub文件,将GRUB_CMDLINE_LINUX_DEFAULT设置成”quiet splash 3” 2. 使用命令update-grub使得在/boot下重新生成GRUB2配置文件。 3. 重启...

JosiahMg
13分钟前
2
0
C++基础知识点

计算机语言 计算机不能理解高级语言,只能理解机器语言,必须要将高级语言翻译成机器语言,翻译的方式有两种,一种是编译,一种是解释 解释型语言,在运行程序时进行翻译,每个语句在执行时逐...

大瑞清_liurq
20分钟前
2
0
EFCore 多条数据更新不能同时savechanges()的解决方法

1 在ModelContext定义下增加var transaction = ctx.Database.BeginTransaction(); 1.2 在最后一个SaveChanges()后增加transaction.Commit(); 3 在finally的if (sMsgCode != "")分支中增加tra......

_Somuns
23分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部