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学习教程之第1天
Jun 15 PHP
PHP 魔术函数使用说明
May 14 PHP
PHP 一个随机字符串生成代码
May 26 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
php简单实现sql防注入的方法
Apr 22 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
YII视图整合kindeditor扩展的方法
Jul 13 PHP
PHP 信号管理知识整理汇总
Feb 19 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
PHP实现动态压缩js与css文件的方法
May 02 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 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数组去重实例及分析
2013/11/26 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
详解node.js中的npm和webpack配置方法
2018/01/21 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
python处理数据,存进hive表的方法
2018/07/04 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
请解释virtual关键字的含义
2015/06/17 面试题
中文专业学生自我评价范文
2014/02/06 职场文书
水电维修专业推荐信
2014/09/06 职场文书
五好家庭申报材料
2014/12/20 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
我的1919观后感
2015/06/03 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
配置nginx 重定向到系统维护页面
2021/06/08 Servers
JavaScript的function函数详细介绍
2021/11/20 Javascript
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android