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 相关文章推荐
thinkphp的CURD和查询方式介绍
Dec 19 PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
php中的ini配置原理详解
Oct 14 PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 PHP
windows平台中配置nginx+php环境
Dec 06 PHP
实例详解PHP中html word 互转的方法
Jan 28 PHP
PHP创建/删除/复制文件夹、文件
May 03 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 PHP
ThinkPHP5和ThinkPHP6的区别
Mar 31 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/01/14 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
js实现点击切换TAB标签实例
2015/08/21 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
js手机号批量滚动抽奖实现代码
2020/04/17 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
详解python中asyncio模块
2018/03/03 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
如何使用python切换hosts文件
2020/04/29 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
周年庆典邀请函范文
2014/01/23 职场文书
三好生演讲稿
2014/09/12 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
电话营销开场白
2015/05/29 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
详解python字符串驻留技术
2021/05/21 Python
JavaScript实现栈结构详细过程
2021/12/06 Javascript