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 截取字符串专题集合
Aug 19 PHP
解析如何用php screw加密php源代码
Jun 20 PHP
PHP eval函数使用介绍
Dec 08 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
Apr 24 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
教大家制作简单的php日历
Nov 17 PHP
php数组分页实现方法
Apr 30 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
基于swoole实现多人聊天室
Jun 14 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 PHP
laravel 模型查询按照whereIn排序的示例
Oct 16 PHP
WordPress多语言翻译插件 - WPML使用教程
Apr 01 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 array_intersect()函数使用代码
2009/01/14 PHP
用PHP编写和读取XML的几种方式
2013/01/12 PHP
php中socket通信机制实例详解
2015/01/03 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
php实现每日签到功能
2018/11/29 PHP
JavaScript延迟加载
2021/03/09 Javascript
flash 得到自身url参数的代码
2009/11/15 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
VUE重点问题总结
2018/03/19 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
Python实现字典的key和values的交换
2015/08/04 Python
python matplotlib画图实例代码分享
2017/12/27 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
python实现剪切功能
2019/01/23 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
司机岗位职责
2013/11/15 职场文书
一个都不能少观后感
2015/06/04 职场文书
2016七夕情人节感言
2015/12/09 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js
关于mysql中string和number的转换问题
2022/06/14 MySQL