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 4.2书写安全的脚本
Oct 09 PHP
实现“上一页”和“下一页按钮
Oct 09 PHP
PHP+APACHE实现用户论证的方法
Oct 09 PHP
一步一步学习PHP(7) php 字符串相关应用
Mar 05 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
Nov 07 PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
PHP模板引擎Smarty自定义变量调解器用法
Apr 11 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
Jul 18 PHP
PHP匿名函数(闭包函数)详解
Mar 22 PHP
php探针使用原理和技巧讲解
Sep 17 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 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中操作Excel实例代码
2010/04/29 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
jquery不常用方法汇总
2015/07/26 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
Vue响应式原理详解
2017/04/18 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
Vue精简版风格概述
2018/01/30 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
详解Vue 项目中的几个实用组件(ts)
2019/10/29 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
Python Sleep休眠函数使用简单实例
2015/02/02 Python
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
python连接mysql有哪些方法
2020/06/24 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
会计学个人自荐信模板
2013/12/13 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
社团活动总结格式
2014/08/29 职场文书
教师继续教育反思周记
2015/06/25 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
SpringBoot快速入门详解
2021/07/21 Java/Android
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers
讨论nginx location 顺序问题
2022/05/30 Servers