加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

详解Yii2 之 天生 URL 的要领

发布时间:2021-01-18 13:27:11 所属栏目:编程 来源:网络整理
导读:媒介 在项目中,保举行使 Yii2 内置的 URL 器材类天生链接,这样可以很是便捷的打点整站的 URL 举动:好比通过修改设置改变整站的URL名目等。URL 更多高级的用法拜见官方文档,这篇文章仅仅先容 Yii2 天生 URL 的几种方法。 Yii2 默认的 URL 链接名目 Yii2

媒介

在项目中,保举行使 Yii2 内置的 URL 器材类天生链接,这样可以很是便捷的打点整站的 URL 举动:好比通过修改设置改变整站的URL名目等。URL 更多高级的用法拜见官方文档,这篇文章仅仅先容 Yii2 天生 URL 的几种方法。

Yii2 默认的 URL 链接名目

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

未启用子模块的 URL 名目:

启用了子模块的 URL 名目:

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 的例子:

urlManager->createUrl('article/view');

// URL:/index.php?r=article/view&id=2
Yii::$app->urlManager->createUrl(['article/view','id'=>2]);

// URL: http://www.example.com?r=kernel/article/view
echo 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
// 表现:http://www.example.com/?r=kernel/article/view&id=10
echo Url::to('',true);

// 字符参数,没啥用
// 表现:kernel/article/view
echo Url::to('kernel/article/view');

// 建设路由,数组参数的自动挪用 Url::toRoute(...)
// 表现:/index.php?r=kernel/article/view
echo Url::to(['article/view']);

2. 假设当前 URL /index.php?r=kernel/article/view&id=10,以下声名 URL 助手类 Url::toRoute() 要领是怎样事变的(保举):

// 沟通的模块和节制器,差异的举措(仅担任参数r的值)
// 表现:/index.php?r=kernel/article/list
echo Url::toRoute('list');

// 沟通的模块和节制器,差异的举措(仅担任参数r的值)
// 表现:/index.php?r=kernel/article/list&cat=contact
echo Url::toRoute(['list','cat'=>10]);

// 沟通模块,差异节制器和举措(仅担任参数r的值)
// 表现:/index.php?r=kernel/product/index
echo Url::toRoute('product/index');

// 绝对路由,不管是被哪个模块和节制器挪用
// 表现:/index.php?r=product/index
echo Url::toRoute('/product/index');

// 节制器举措 actionListHot 的 URL 名目(仅担任参数r的值,区分巨细写)
// 表现:/index.php?r=kernel/article/list-hot
echo 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() 要领是怎样事变的(保举):

// 移除参数 id
// 表现:/?r=kernel/article/view
echo Url::current(['id'=>null]);

// 新增参数 cat
// 表现:/?r=kernel/article/view&id=10&cat=2
echo Url::current(['cat'=>2]);

以上就是本文的所有内容,但愿对各人的进修有所辅佐,也但愿各人多多支持编程之家。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读