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 相关文章推荐
Dedecms常用函数解析
Feb 01 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
探讨file_get_contents与curl效率及稳定性的分析
Jun 06 PHP
PHP中$this和$that指针使用实例
Jan 06 PHP
php上传大文件失败的原因及应对策略
Oct 20 PHP
Yii实现简单分页的方法
Apr 29 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
php实现产品加入购物车功能(1)
Jul 23 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
laravel 事件/监听器实例代码
Apr 12 PHP
laravel框架与其他框架的详细对比
Oct 23 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依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
Python提取网页中超链接的方法
2016/09/18 Python
Python ldap实现登录实例代码
2016/09/30 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
Pytorch之保存读取模型实例
2019/12/30 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
毕业生自荐信
2013/12/14 职场文书
高中政治教学反思
2014/01/18 职场文书
母校寄语大全
2014/04/10 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers
Python turtle编写简单的球类小游戏
2022/03/31 Python
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS