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

建站专题

详解Yii2 之 生成 URL 的方法

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

前言

在项目中,推荐使用 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

26
04月
Mac下php 5升级到php 7的步骤详解

前言在MAC OS X 10.11中php的版本是5.5的,近来一年多里,看到了很多关于php7介绍,以为php7增加了很多新特性,也删除了... >>详情

31
08月
深圳建站公司

深圳建站公司就找一佰互联深圳企业建站,美工兼顾SEO优化,让你的网站轻松运行于互联网,并取得好的排名。更多深圳建站公司服务欢迎登陆官网或者来... >>详情

20
04月
HTML5中的音频和视频媒体播放元素小结

音频和视频的编码/解码器是一组算法,用来对一段特定的音频或视频流进行编码和解码,以便音频和视频能够播放。原始的媒体文件体积非常大,假如不对其... >>详情

04
04月
不做裂变,公众号还能怎么涨粉?

简介:公众号要想涨粉,除了裂变还有其他途径吗?这是一个朋友抛给我的问题,他说,这个问题困扰了他许久。要说他的公众号,文章的打开率,点赞比都不... >>详情

营业执照. 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号