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 相关文章推荐
PHP写MySQL数据 实现代码
Jun 15 PHP
php之Memcache学习笔记
Jun 17 PHP
PHP中使用addslashes函数转义的安全性原理分析
Nov 03 PHP
php使用function_exists判断函数可用的方法
Nov 19 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
Mar 04 PHP
php遍历目录方法小结
Mar 10 PHP
PHP设计模式之装饰者模式代码实例
May 11 PHP
PHP之预定义接口详解
Jul 29 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 PHP
PHP实现的curl批量请求操作示例
Jun 06 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概率算法实例
2014/04/09 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
JavaScript游戏之优化篇
2010/11/08 Javascript
JavaScript 原型继承
2011/12/26 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
JS实现打字游戏
2019/12/17 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
利用Python实现颜色色值转换的小工具
2016/10/27 Python
Python 多线程实例详解
2017/03/25 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
Python 使用多属性来进行排序
2019/09/01 Python
Python2与Python3的区别详解
2020/02/09 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
努比亚手机官网:nubia
2016/10/06 全球购物
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
法警的竞聘演讲稿
2014/01/02 职场文书
酒店副总经理岗位职责范本
2014/02/04 职场文书
理财投资建议书
2014/03/12 职场文书
2014年数学教师工作总结
2014/12/03 职场文书