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 相关文章推荐
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
php实现文件下载更能介绍
Nov 23 PHP
基于php权限分配的实现代码
Apr 28 PHP
PHP中foreach()用法汇总
Jul 02 PHP
PHP实现简单搜歌的方法
Jul 28 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
PHP 断点续传实例详解
Nov 11 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 PHP
php微信开发之关键词回复功能
Jun 13 PHP
laravel 框架实现无限级分类的方法示例
Oct 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初学者的8点有效建议
2010/11/20 PHP
php ajax 静态分页过程形式
2011/09/02 PHP
php中防止SQL注入的最佳解决方法
2013/04/25 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
yii操作session实例简介
2014/07/31 PHP
php读取csv数据保存到数组的方法
2015/01/03 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
PHP之header函数详解
2021/03/02 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
python装饰器深入学习
2018/04/06 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
学习两会精神心得范文
2014/03/17 职场文书
助理政工师申报材料
2014/06/03 职场文书
2014员工聘用协议书(最新版)
2014/11/24 职场文书
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
利用JavaScript写一个简单计算器
2021/11/27 Javascript
MySQL批量更新不同表中的数据
2022/05/11 MySQL