Yii2框架自定义类统一处理url操作示例


Posted in PHP onMay 25, 2019

本文实例讲述了Yii2框架自定义类统一处理url操作。分享给大家供大家参考,具体如下:

因为每个人写url的方式不一样,导致我们后期如果对url有修改的话,就非常麻烦。

所以我们需要来统一管理,同时还可以规范书写。

1、新建services\UrlService.php,services 是我们自定义的目录,专门用来写我们的各种自定义服务。

<?php
namespace app\services;
use yii\helpers\Url;
/**
 * 统一管理链接,并规范书写
 * Class UrlService
 * @package app\services
 */
class UrlService
{
  /**
   * 返回一个内部链接
   * @param $uri
   * @param array $params
   * @return string
   */
  public static function buildUrl($uri,$params=[])
  {
    return Url::toRoute(array_merge([$uri],$params));
  }
  /**
   * 返回一个空链接
   * @return string
   */
  public static function buildNullUrl()
  {
    return "javascript:void(0)";
  }
}

2、我们已经给UrlService 类写了2个静态方法,下面来看看如何使用?

在我们之前加载js和css处,代码就可以修改为如下:

$this->css = [
  UrlService::buildUrl("bootstrap/css/bootstrap.min.css",["v"=>$release]),
  UrlService::buildUrl('css/app.css')
];
$this->js = [
  UrlService::buildUrl('jquery/jquery.min.js'),
  UrlService::buildUrl('bootstrap/js/bootstrap.min.js')
];

3、此时我们打开浏览器发现页面错位,并没有成功加载css和js。

我们需要编辑config/web.php这个配置文件,打开如下代码的注释

'urlManager' => [
  'enablePrettyUrl' => true,
  'showScriptName' => false,
  'rules' => [
  ],
],

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP新手上路(六)
Oct 09 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
Apr 13 PHP
linux下为php添加curl扩展的方法
Jul 29 PHP
php Session存储到Redis的方法
Nov 04 PHP
php中JSON的使用与转换
Jan 14 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
php实现二进制和文本相互转换的方法
Apr 18 PHP
php强大的时间转换函数strtotime
Feb 18 PHP
php结合md5的加密解密算法实例
Sep 30 PHP
Laravel框架Request、Response及Session操作示例
May 06 PHP
php中钩子(hook)的原理与简单应用demo示例
Sep 03 PHP
Yii2框架加载css和js文件的方法分析
May 25 #PHP
php数组遍历类与用法示例
May 24 #PHP
PHP实现的操作数组类库定义与用法示例
May 24 #PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 #PHP
Swoole4.4协程抢占式调度器详解
May 23 #PHP
PHP文件上传小程序 适合初学者学习!
May 23 #PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 #PHP
You might like
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
PHP实现倒计时功能
2020/11/16 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
JS中FRAME的操作问题实例分析
2014/10/21 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
python3+PyQt5使用数据库表视图
2018/04/24 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
公务员年总结的自我评价
2013/10/25 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
详解Python中的进程和线程
2021/06/23 Python
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python
css3新特性的应用示例分析
2022/03/16 HTML / CSS
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js