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调用mysql存储过程
Feb 14 PHP
PHP 中的批处理的实现
Jun 14 PHP
php上的memcache和memcached两个pecl库
Mar 29 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
利用PHP实现图片等比例放大和缩小的方法详解
Jun 06 PHP
php使用COPY函数更新配置文件的方法
Jun 18 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 PHP
PHP微信支付结果通知与回调策略分析
Jan 10 PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 09 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
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
Smarty保留变量用法分析
2016/05/23 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
2016/11/01 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
深入理解vue Render函数
2017/07/19 Javascript
js实现窗口全屏示例详解
2019/09/17 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
python将人民币转换大写的脚本代码
2013/02/10 Python
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
2016/06/13 Python
Python判断文件和字符串编码类型的实例
2017/12/21 Python
centos7之Python3.74安装教程
2019/08/15 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
python随机模块random使用方法详解
2020/02/14 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
中科方德软件测试面试题
2016/04/21 面试题
大一自我鉴定范文
2013/10/04 职场文书
九年级历史教学反思
2014/01/27 职场文书
中秋节礼品促销方案
2014/02/02 职场文书
消防应急演练方案
2014/02/12 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
人事任命书格式
2014/06/05 职场文书
中学生打架检讨书
2014/10/13 职场文书
答谢词范文
2015/01/05 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
在python中实现导入一个需要传参的模块
2021/05/12 Python