在控制器调用$this->render()方法来输出视图
function actionLogin(){ $name = "admin"; // 加载视图 return $this->render("login",["name"=>$name]); }
第一个参数为视图名称,视图文件位置为views/控制器名称/视图文件
第二个参数是注入视图的模板变量(数组),在视图中将模板变量的键名为变量名调用
$this->render()方法会自动加载一个父模板,将指定视图内容添加到父模板的指定位置输出
如果不想加载父模板,可以调用$this->renderPartial()方法来加载模板
默认父模板文件为views/layouts/main.php
父模板中输出$content变量的位置就是控制器加载模板文件的添加位置
在实际需求中我们会自定义父模板
在views/layouts目录下创建自定义父模板,如:views/layouts/admin.php
然后在控制器对应的控制器类中添加一个属性
// 指定自定义父模板 public $layout = "admin";
这样在这个控制器里调用$this->render()方法就会加载指定的父模板
原文:https://www.cnblogs.com/hl540/p/9116123.html