关于Yii2中的MVC中的视图总结(持续更新中)
一、首先在控制器中,将处理好的数据发送给前台:
$this->layout = 'base'; 这里填写视图的模板文件(可以不写这行代码,如果不写,默认为views/layouts/main.php这个文件)
return $this->render ('这里填写视图文件名称',['user'=>这里填写处理好的数据(比如说数组$list等等)]);
如果不想使用模板文件,那么这里的写法为 return $this->renderPartial('index');
前台接受为$user
二、准备好模板文件:
<?php use yii\helpers\Html; use yii\helpers\Url; use yii\web\View; $this->registerCssFile('@web/public/frontend/css/style.css'); $this->registerJsFile('@web/public/frontend/js/jquery.min.js',['position'=>View::POS_HEAD]); $this->registerJsFile('@web/public/frontend/js/index.js',['position'=>View::POS_HEAD]); ?> <?php $this->beginPage()?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <?= Html::encode($this->title)?> <?= $this->head()?> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> </head> <body> <?php $this->beginBody()?> <?= $content?> <?php $this->endBody()?> </body> </html> <?php $this->endPage()?>
三、建立视图文件
如果控制器是SiteController,那么文件建立在views/site/(xxx.php),简单来说,这个视图文件,将被视为二中的$content,放入模板文件中。
视图文件的<style>中的背景图片的路径写法:
{background:url(/public/frontend/images-pc/p04.png) no-repeat 0 center;}
渲染静态页面 ¶
静态页面指的是大部分内容为静态的不需要控制器传递 动态数据的Web页面。
可将HTML代码放置在视图中,在控制器中使用以下代码输出静态页面:
public function actionAbout()
{
return $this->render('about');
}
如果Web站点包含很多静态页面,多次重复相似的代码显得很繁琐, 为解决这个问题,可以使用一个在控制器中称为 yii\web\ViewAction 的独立动作。 例如:
namespace app\controllers;
use yii\web\Controller;
class SiteController extends Controller
{
public function actions()
{
return [
'page' => [
'class' => 'yii\web\ViewAction',
],
];
}
}
现在如果你在@app/views/site/pages
目录下创建名为 about
的视图, 可通过如下url显示该视图:
http://localhost/index.php?r=site/page&view=about
GET
中 view
参数告知 yii\web\ViewAction 动作请求哪个视图,然后操作在 @app/views/site/pages
目录下寻找该视图,可配置 yii\web\ViewAction::$viewPrefix 修改搜索视图的目录。