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为php增加openssl模块的方法
Jun 14 PHP
用php解析html的实现代码
Aug 08 PHP
header导出Excel应用示例
Jan 24 PHP
php通过array_shift()函数移除数组第一个元素的方法
Mar 18 PHP
php动态绑定变量的用法
Jun 16 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
Jul 09 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
PHP实现微信商户支付企业付款到零钱功能
Sep 30 PHP
PHP调用全国天气预报数据接口查询天气示例
Feb 20 PHP
php上传后台无法收到数据解决方法
Oct 28 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导入mysql
2009/11/09 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
laravel自定义分页效果
2017/07/23 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
JavaScript调用Activex控件的事件的实现方法
2010/04/11 Javascript
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
微信小程序异步处理详解
2017/11/10 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
element-ui表格数据转换的示例代码
2018/08/24 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
python字典值排序并取出前n个key值的方法
2018/10/17 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
小学生节水倡议书
2015/04/29 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技