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
dedecms 制作模板中使用的全局标记图文教程
Mar 11 PHP
php fckeditor 调用的函数
Jun 21 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
Aug 31 PHP
php中base64_decode与base64_encode加密解密函数实例
Nov 24 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
smarty模板引擎之分配数据类型
Mar 30 PHP
Nginx下配置codeigniter框架方法
Apr 07 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
全面了解PHP中的全局变量
Jun 17 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
Jul 04 PHP
thinkphp框架类库扩展操作示例
Nov 26 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
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
JavaScript 图像动画的小demo
2012/05/23 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
详解Python当中的字符串和编码
2015/04/25 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
Django实现表单验证
2018/09/08 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
为什么要使用servlet
2016/01/17 面试题
村安全生产责任书
2014/08/25 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
525心理健康活动总结
2015/05/08 职场文书
改进工作作风心得体会
2016/01/23 职场文书
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技