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数据库开发知多少
Oct 09 PHP
php对mongodb的扩展(初出茅庐)
Nov 11 PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
php数字运算验证码的实现代码
Jul 30 PHP
从刷票了解获得客户端IP的方法
Sep 21 PHP
Yii中的cookie的发送和读取
Jul 27 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 PHP
thinkphp5.1 框架钩子和行为用法实例分析
May 25 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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脚本[带参数]的方法
2010/01/22 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
javascript操作excel生成报表全攻略
2014/05/04 Javascript
使用jquery组件qrcode生成二维码及应用指南
2015/02/22 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
Jquery获取当前城市的天气信息
2016/08/05 Javascript
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
微信小程序之发送短信倒计时功能
2017/08/30 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
python实现爬取千万淘宝商品的方法
2015/06/30 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
python根据时间获取周数代码实例
2019/09/30 Python
Python如何获取文件指定行的内容
2020/05/27 Python
如何利用Python识别图片中的文字
2020/05/31 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
设计师珠宝:Ylang 23
2018/05/11 全球购物
考试不及格的检讨书
2014/01/22 职场文书
教学实验楼管理制度
2014/02/01 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
2014年采购工作总结
2014/11/20 职场文书
男生贾里读书笔记
2015/06/30 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python