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

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

(0)

相关推荐

  • Yii隐藏URL中index.php的方法

    本文实例讲述了Yii隐藏URL中index.php的方法.分享给大家供大家参考,具体如下: 一.修改config/下的main.php里的: 'urlManager'=>array( 'urlFormat'=>'path', 'showScriptName'=>false, 'rules'=>array( '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w

  • yii2 url重写并隐藏index.php方法

    第一步 : 不管是 apache 还是 nginx ,想要隐藏 Index.php 文件,需要打开 urlManager 组件的配置,在进行后续的操作 [ 'components' => [ 'urlManager' => [ 'enablePrettyUrl' => true,//开启美化URL 'showScriptName' => false,//是否显示脚本名称:index.php,同时应该配置 Web 服务 'enableStrictParsing' => fals

  • yii框架中的Url生产问题小结

    复制代码 代码如下: <?php echo CHtml::link('错误链接','user/register')?> <?php echo CHtml::link('正确链接',array('user/register'))?> 假定设定了UrlManager的配置为Path模式,用yii默认的配置: 复制代码 代码如下: 'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( '<control

  • Yii2 加载css、js 载静态资源的方法

    应用场景 Yii2提供了AppAsset类管理静态资源,在使用Yii2 布局模板时,如果想在某个页面内部写一段js 并且在页面底部,如果直接使用 script 标签是不可以的. 使用AppAsset类管理静态资源 打开assetsAppAsset.php,定义 addJs(),addCss() 分别用于在静态页面引入外部js.css 文件 1.修改AppAsset.php文件代码 namespace backend\assets; use yii\web\AssetBundle; /** * @

  • 详解Yii2 之 生成 URL 的方法

    前言 在项目中,推荐使用 Yii2 内置的 URL 工具类生成链接,这样可以非常便捷的管理整站的 URL 行为:比如通过修改配置改变整站的URL格式等.URL 更多高级的用法参见官方文档,这篇文章仅仅介绍 Yii2 生成 URL 的几种方式. Yii2 默认的 URL 链接格式 Yii2 默认的 URL 链接格式是指为开启 URL 美化时的格式. 未启用子模块的 URL 格式: // 参数 r 中的 article 表示控制器, view 表示动作 http://www.example.com/

  • yii2 页面底部加载css和js的技巧

    一般来说,网页内部的js文件或代码,都是放置在网页底部</body>的前面,这是因为网页自上而下加载,用户在访问我们页面的时候尽量不要因为加载js展现过长时间的空白页面,停留时间过长就白白流失了用户量. yii2中是集成了jQuery的,而且jQuery文件是加载在页面底部的,因此,如果我们的js代码段不在页面底部加载,就很大可能会发生$未定义的友好提示. 我这废话一大堆得毛病确实需要去挂个号看看了... 先来看看js代码段怎么处理 <?php $this->registerJs(

  • YII使用url组件美化管理的方法

    本文实例讲述了YII使用url组件美化管理的方法.分享给大家供大家参考,具体如下: urlManager组件 yii的官方文档对此的解释如下: urlSuffix  此规则使用的url后缀,默认使用CurlManger::urlSuffix,值为null.例如可以将此设置为.html,让url看起来"像"是一个静态页面. caseSensitive  是否大小写敏感,默认使用CUrlManager::caseSensitive,值为null. defaultParams  该规则使用的

  • Yii2框架加载css和js文件的方法分析

    本文实例讲述了Yii2框架加载css和js文件的方法.分享给大家供大家参考,具体如下: 1.第一步是要把我们的css.js文件放到web目录下 2.第二步修改assets/AppAsset.php文件 <?php /** * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/license/ */ na

  • Yii获取当前url和域名的方法

    本文实例讲述了Yii获取当前url和域名的方法.分享给大家供大家参考.具体如下: 假设我们当前页面的访问地址是:http://localhost/CMS/public/index.php?r=news&id=1 一. 1.获取当前域名: 复制代码 代码如下: echo Yii::app()->request->hostInfo; 结果:http://localhost 2.获取(除域名外的)当前URL: 复制代码 代码如下: echo Yii::app()->request-&g

  • Yii2针对指定url的生成及图片等的引入方法小结

    本文实例讲述了Yii2针对指定url的生成及图片等的引入方法.分享给大家供大家参考,具体如下: // /index?r=site/index echo Url::to(['site/index']); // /index?r=site/index&src=ref1#name echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name']); // the currently requested URL echo Url::to()

随机推荐