香港高速VIP云机房火爆上线啦!无需备案,开通即用!配套《巅云自助建站系统3.0》将带给您飞一般的可视化拖拽建站体验,欢迎免费体验。

建站专题

详解Yii2 之 生成 URL 的方法

一佰互联网站开发设计(www.yinxi.net) 发布日期 2019-04-26 09:01:53 浏览数: 91

前言

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

Yii2 默认的 URL 链接格式

Yii2 默认的 URL 链接格式是指为开启 URL 美化时的格式。

未启用子模块的 URL 格式:

// 参数 r 中的 article 表示控制器, view 表示动作http://www.example.com/index.php?r=article/view&id=100

启用了子模块的 URL 格式:

// 参数 r 中的 kernel 表示子模块http://www.example.com/index.php?r=kernel/article/view&id=100

Yii2 内置的 URL 生成工具

  1. URL 管理器:urlManager
  2. URL 助手类:yiihelpersUrl

使用内置的 URL 生成工具,以后可以在不改变源码的情况通过配置即可美化整站的 URL

URL 管理器

URL 管理器是一个名叫 urlManager 的内置应用组件。在 WEB 应用和控制台应用中以通过以下两种方式创建 URL:

  1. Yii::$app->urlManager->createUrl($params)
  2. Yii::$app->urlManager->createAbsoluteUrl($params, $schema = null)

createUrl 方法生成根目录的相对路径,例如:/index.php?r=article/view

createAbsoluteUrl() 方法生成的是绝对路径,例如:http://www.example.com/index.php?r=article/view

常见的利用 URL 管理器创建 URL 的例子:

// URL:/index.php?r=article/viewYii::$app->urlManager->createUrl("article/view");// URL:/index.php?r=article/view&id=2Yii::$app->urlManager->createUrl(["article/view","id"=>2]);// URL: http://www.example.com?r=kernel/article/viewecho Yii::$app->urlManager->createAbsoluteUrl("kernel/article/view");

URL 助手类

相对于 URL管理器,使用 yiihelpersUrl 助手类可大大简化 URL 的创建。

1. 假设当前 URL /index.php?r=kernel/article/view&id=10,以下说明 URL 助手类 Url::to() 是如何工作的(不推荐):

// 创建当前 URL// 显示:/?r=kernel/article/view&id=10echo Url::to();// 创建当前 URL// 显示:http://www.example.com/?r=kernel/article/view&id=10echo Url::to("", true);// 字符参数,没啥用// 显示:kernel/article/viewecho Url::to("kernel/article/view");// 创建路由,数组参数的自动调用 Url::toRoute(...)// 显示:/index.php?r=kernel/article/viewecho Url::to(["article/view"]);

2. 假设当前 URL /index.php?r=kernel/article/view&id=10,以下说明 URL 助手类 Url::toRoute() 方法是如何工作的(推荐):

// 创建当前路由(仅继承参数r的值)// 显示:/index.php?r=kernel/article/viewecho Url::toRoute([]);// 相同的模块和控制器,不同的动作(仅继承参数r的值)// 显示:/index.php?r=kernel/article/listecho Url::toRoute("list");// 相同的模块和控制器,不同的动作(仅继承参数r的值)// 显示:/index.php?r=kernel/article/list&cat=contactecho Url::toRoute(["list","cat"=>10]);// 相同模块,不同控制器和动作(仅继承参数r的值)// 显示:/index.php?r=kernel/product/indexecho Url::toRoute("product/index");// 绝对路由,不管是被哪个模块和控制器调用// 显示:/index.php?r=product/indexecho Url::toRoute("/product/index");// 控制器动作 `actionListHot` 的 URL 格式(仅继承参数r的值,区分大小写)// 显示:/index.php?r=kernel/article/list-hotecho Url::toRoute("list-hot");// 从别名中获取 URL // 显示:http://www.baidu.com/Yii::setAlias("@baidu", "http://www.baidu.com/");echo Url::to("@baidu");

3. 假设当前 URL /index.php?r=kernel/article/view&id=10,以下说明 URL 助手类 Url::current() 方法是如何工作的(推荐):

// 创建当前 URL(包括路由和参数)// 显示:/?r=kernel/article/view&id=10echo Url::current();// 移除参数 id// 显示:/?r=kernel/article/viewecho Url::current(["id"=>null]);// 新增参数 cat// 显示:/?r=kernel/article/view&id=10&cat=2echo Url::current(["cat"=>2]);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持网页设计。

TAG标签: 详解Yii2      生成   URL   的方法  
一佰互联是全国知名建站品牌服务商,我们有九年网站建设、网站制作、网页设计、php开发和域名注册及虚拟主机服务经验,提供的自助建站服务更是全国有名。近年来还整合团队优势自主开发了可视化多用户”巅云建站系统“3.0平台版,拖拽排版网站制作设计,轻松实现pc站、手机微网站、小程序、APP一体化全网营销网站建设 ,已成功的为全国上百家网络公司提供自助建站平台搭建服务。

相关新闻more

20
04月
浅谈利用缓存来优化HTML5 Canvas程

canvas玩多了后,就会自动的要开始考虑性能问题了。怎么优化canvas的动画呢?【使用缓存】使用缓存也就是用离屏canvas进行预渲染了... >>详情

03
05月
怎么进行seo关键词选择

在做seo的时候,我们首选要确定坐哪几个关键词,一般主推3个关键词差不多,剩下的关键词作为辅助关键词,或称之为长尾关键词。说到关键词的选择是... >>详情

03
08月
巅云多用户PHP自助建站系统平台版手机微站,

网站从三站合一,PC端,手机端,微信,APP,到今天的增加小程序后五站合一。着实在移动互联网领域开发力度增加了不少。无疑移动用户量在增加,这... >>详情

09
04月
如何找到改版的切入点?我用「品牌探索」这个方

@菜心设计铺 :前几天做了《暴风影音 App 重设计》,不过还没做完,所以今天主要讲讲我寻找改版切入点的方法——品牌探索。到底品牌探索能给我... >>详情

营业执照. cdn加速服务 备案系统认证 网络安全协会 我们的支付方式AAA认证
上海 北京 深圳 广州 天津 杭州 南京 武汉 成都 沈阳 大连 长沙 济南 青岛 苏州 福州 无锡 哈尔滨 宁波 重庆 大庆 厦门 西安 长春 珠海 郑州 海口 昆明 太原 石家庄 温州 合肥 乌鲁木齐 南宁 南通 合肥 兰州 呼和浩特 贵阳 烟台 秦皇岛 包头 唐山 银川 汕头 连云港 威海 西宁 湛江 北海 万州 涪陵 长寿 黔江 永川 丰都 忠县 江津 南川 开县 云阳 万盛 梁平 垫江 巫山 城口 建站宝盒 免费建站 门户网站建设 微信网站 手机网站 门户网站制作

7x24小时服务电话:18581389571 传真:023-85725751 免费建站交流群:236412099 139947842(自助建站交流) E-Mail:post@yinxi.net 网站投诉:
重庆楚捷科技有限公司 一佰互联©版权所有 自助建站(www.yinxi.net,Inc.) 2001-2020 All Rights Reserved 本站程序受法律保护,网站法律顾问:ITLAW-庄毅雄律师
中华人民共和国信息产业部网站备案号:渝ICP备12000592号