Yii2.0学习第22课:布局的使用

2025-04-09 09:00:23

网站往往有公共的部分,如何每个页面都包含相同的dom结构,比如头部或底部,我们应该把它摘出来,假如网站有1000个页面有相同的头和僦姆岚账底,要修改的时候将成为一件痛苦的事情。到时候你才会感觉到“脑力劳动”和“体力劳动”的差异,Yii提供了一种方法,我们来学习一下,希望对需要的朋友有所帮助。

工具/原料

LNMP环境

浏览器

单控制器布局修改

1、访问登陆页面,页面使用的是$this->render,这时候系统默认使用的是@app/views/layouts/main.php文件,效果如下:

Yii2.0学习第22课:布局的使用

2、打开@app/controllers/Logincontroller.php,添加以下代码:public $layout = 'hlong';

Yii2.0学习第22课:布局的使用

3、我们旅邯佤践进入@app/views/layouts目录,创建hlong.php文件,并写入新的内容,然后重新访问登陆页面,效果剧安颌儿如下:<?= 'I am new header<br>' ?><?= $content ?><?= '<br>I am new footer' ?>

Yii2.0学习第22课:布局的使用
Yii2.0学习第22课:布局的使用

全控制器布局修改

1、我们在前面尝试了“单控制器布局的修改”,从字面意思上理解应该只应用了当前控制器,我们验证一下,访问注册页面,查看效果:

Yii2.0学习第22课:布局的使用

2、进入@app/vendor/yiisoft/yii2/base/Application.php,搜索关键字“layout”并修改,重新访问注册页面,效果如下:

Yii2.0学习第22课:布局的使用
Yii2.0学习第22课:布局的使用
Yii2.0学习第22课:布局的使用

3、有朋友可能觉得修改vendor貌似不是一个很友好的方法,我们还可以在配置文件里面设置,在config/web.php中添加以下代码:'稆糨孝汶;layout' => 'hlong',

Yii2.0学习第22课:布局的使用
Yii2.0学习第22课:布局的使用

模块下布局的使用

1、恢复我们之前的修改,并尝试访问我们在前期创建的一个模块默认首页,效果如下:

Yii2.0学习第22课:布局的使用

2、进入@app/modules/admin/Module.php,添加以下代码,public $layout = 'admin_main';

Yii2.0学习第22课:布局的使用
Yii2.0学习第22课:布局的使用

3、创建@app/modules/admin/views/layouts/admin_main.php文件,加入测试代码并重新访问:

Yii2.0学习第22课:布局的使用

4、然后我们删除Admin模块下的网站布局,并尝试创建“全控制器布局(应用级别)”

Yii2.0学习第22课:布局的使用
Yii2.0学习第22课:布局的使用
Yii2.0学习第22课:布局的使用
Yii2.0学习第22课:布局的使用
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢