菜鸟CK 2016-07-03 15:30:17 5844次浏览 4条评论 13 2 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'
	]
]);?>

得到结果:

分页结果

觉得很赞
您需要登录后才可以评论。登录 | 立即注册