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音乐采集(部分代码)
Feb 14 PHP
使用TinyButStrong模板引擎来做WEB开发
Mar 16 PHP
实用函数8
Nov 08 PHP
PHP下对字符串的递增运算代码
Aug 21 PHP
应用开发中涉及到的css和php笔记分享
Aug 02 PHP
PH P5.2至5.5、5.6的新增功能详解
Jul 14 PHP
PHP连接sql server 2005环境配置及问题解决
Aug 08 PHP
Zend Framework教程之配置文件application.ini解析
Mar 10 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
解决laravel(5.5)访问public报错的问题
Oct 12 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
Oct 14 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 输出缓存详解
2009/06/20 PHP
PHP 替换模板变量实现步骤
2009/08/24 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
python时间time模块处理大全
2020/10/25 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
美国家居装饰店:Pier 1
2019/09/04 全球购物
一年级班主任寄语
2014/01/19 职场文书
全陪导游词
2015/02/04 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
学校社团活动总结
2015/05/07 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
教你如何使用Python下载B站视频的详细教程
2021/04/29 Python