Yii框架布局文件的动态切换操作示例


Posted in PHP onNovember 11, 2019

本文实例讲述了Yii框架布局文件的动态切换操作。分享给大家供大家参考,具体如下:

如果你看了底层Controller的源码和Module(模块)的源码,那么你就能很熟练的婉转布局切换了。

1、在控制器中切换当前布局和在方法中动态切换布局

<?php
namespace app\modules\TestModule\controllers;
use Yii;
use yii\web\Controller;
class IndexController extends Controller
{
  //在属性中声明
  public $layout = "custom1";
  public function actionIndex()
  {
    //在方法中动态切换布局
    $this->layout = "custom2";
    $this->render('index',array(
      'name' => '谭勇',
      'age' => 22
    ));
  }
}
?>

在类属性中声明layout 会覆盖父类Controller 类中的layout 达到切换布局的目录。

甚至我们可以在模块文件中声明布局

namespace app\modules\TestModule;
use yii\base\Module;
class TestModule extends Module
{
  //当前应用主题
  private $theme = 'default';
  public function init()
  {
    //控制器文件存放目录
    $this->controllerNamespace = 'app\modules\TestModule\controllers';
    $dirname = dirname(__FILE__);
    //视图目录 (包含主题目录)
    $this->setViewPath($dirname . '/views/' . $this->theme . '/');
    //生命布局名称
    $this->layout = "common";
  }
}

然后我们就在default主题下的layouts目录中去寻找common.php布局了。

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

PHP 相关文章推荐
一个多文件上传的例子(原创)
Oct 09 PHP
PHP4实际应用经验篇(4)
Oct 09 PHP
php生成N个不重复的随机数实例
Nov 12 PHP
php单例模式示例分享
Feb 12 PHP
php写入、删除与复制文件的方法
Jun 20 PHP
php实现的Curl封装类Curl.class.php用法实例分析
Sep 25 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
浅析php中array_map和array_walk的使用对比
Nov 20 PHP
PHP getName()函数讲解
Feb 03 PHP
PHP中str_split()函数的用法讲解
Apr 11 PHP
PHP中类与对象功能、用法实例解读
Mar 27 PHP
php将xml转化对象的实例详解
Nov 17 PHP
Yii框架模拟组件调用注入示例
Nov 11 #PHP
在Laravel中使用MongoDB的方法示例
Nov 11 #PHP
PHP使用递归按层级查找数据的方法
Nov 10 #PHP
php和js实现根据子网掩码和ip计算子网功能示例
Nov 09 #PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
Nov 09 #PHP
php进程(线程)通信基础之System V共享内存简单实例分析
Nov 09 #PHP
PHP多进程简单实例小结
Nov 09 #PHP
You might like
php遍历目录viewDir函数
2009/12/15 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
js判断浏览器是否支持html5
2014/08/17 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
JavaScript中对象介绍
2014/12/31 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
Python实现获取操作系统版本信息方法
2015/04/08 Python
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
python使用Tesseract库识别验证
2018/03/21 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
美国网上眼镜供应商:LEOTONY(眼镜、RX太阳镜和太阳镜)
2017/10/31 全球购物
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
有针对性的求职自荐信
2013/11/14 职场文书
电子技术专业中专生的自我评价
2013/12/17 职场文书
文科教师毕业的自我评价
2014/01/16 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
新闻学专业求职信
2014/07/28 职场文书
个人向公司借款协议书
2014/10/09 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
JS函数式编程实现XDM一
2022/06/16 Javascript