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中uploaded_files函数使用方法详解
Mar 09 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
PHP字符串长度计算 - strlen()函数使用介绍
Oct 15 PHP
PHP连接access数据库
Mar 27 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
php基于双向循环队列实现历史记录的前进后退等功能
Aug 08 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
Sep 23 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 PHP
php+ajax实现文件切割上传功能示例
Mar 03 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 过滤器实现代码
2010/08/09 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
2015/06/16 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
2015/12/04 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python实现从log日志中提取ip的方法【正则提取】
2018/03/31 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
音乐表演专业毕业生求职信
2013/10/14 职场文书
奥利奥广告词
2014/03/20 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
小学老师对学生的评语
2014/12/29 职场文书
Python 内置函数速查表一览
2021/06/02 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
Vue router配置与使用分析讲解
2022/12/24 Vue.js