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的安全
Oct 09 PHP
IIS6的PHP最佳配置方法
Mar 19 PHP
php仿ZOL分页类代码
Oct 02 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
PHP循环函数使用介绍之PHP基础入门教程
Sep 21 PHP
php支付宝接口用法分析
Jan 04 PHP
php通过strpos查找字符串出现位置的方法
Mar 17 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
怎样搭建PHP开发环境
Jul 28 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
Dec 13 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
Aug 17 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的ob_start来生成静态页面的方法分析
2011/03/09 PHP
PHP设计模式之责任链模式的深入解析
2013/06/13 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
php输入流php://input使用浅析
2014/09/02 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
Vue DevTools调试工具的使用
2017/12/05 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
销售部主管岗位职责
2013/12/18 职场文书
竞聘上岗演讲稿范文
2014/01/10 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
大学军训感言200字
2014/02/26 职场文书
代办出身证明书
2014/10/21 职场文书
挂靠协议书
2015/01/27 职场文书
体育教师个人总结
2015/02/09 职场文书
工作保证书怎么写
2015/02/28 职场文书
毕业典礼致辞
2015/07/29 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书