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 变量定义和变量替换的方法
Jul 30 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
PHP中if和or运行效率对比
Dec 12 PHP
php实现计数器方法小结
Jan 05 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
Mar 03 PHP
Thinkphp+smarty+uploadify实现无刷新上传
Jul 30 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
thinkphp框架实现删除和批量删除
Jun 29 PHP
详解PHP 7.4 中数组延展操作符语法知识点
Jul 19 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 PHP
php的无刷新操作实现方法分析
Feb 28 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
web方式ftp
2006/10/09 PHP
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
php中调用其他系统http接口的方法说明
2014/02/28 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
js数组Array sort方法使用深入分析
2013/02/21 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
python reverse反转部分数组的实例
2018/12/13 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
总经理秘书的岗位职责
2013/12/27 职场文书
商场消防演习方案
2014/02/12 职场文书
环境整治工作方案
2014/05/18 职场文书
经理岗位职责范本
2015/04/15 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
Python图像处理之图像拼接
2021/04/28 Python
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js