在yii2中,引入视图模版文件的4种方法的区别如下:
1、“@app” 开头,“@app”是一个路径别名,对应站点根目录。比如项目路径为:E:/www/yii2/,引入为:$this->render('@app/views/site/about.php'),则对应的文件所在磁盘路径为:“E:/www/yii2/views/site/about.php”(可以用var_dump(Yii::getAlias('@app'));查看@app的值)。
2、默认为控制器或小部件对应默认的路径,例如:SiteController.php中return $this->render(“about”) 对应到 @app/views/site/about.php (即:E:/www/yii2/views/site/about.php)。
此类方法也是大家平时用的最多的。
3、“//” 开头对应的视图文件路径为 @app/views/... ,例如 //site/about 对应到 @app/views/site/about.php 。
4、“/”开头表示相对于当前views目录的位置,例如:如果当前模块为user,/site/about对应成@app/modules/user/views/site/about.php , 如果不是模块,/site/about对应 @app/views/site/about.php 。
注意:“//”和“/”的区别在于,“//”相当于绝对路径,“/”相当于相对路径。具体对比如下:
控制器$this->render模版路径
E:/yii2/controllers/SiteController.php//site/aboutE:/yii2/views/site/about.php
E:/yii2/modules/user/controllers/SiteController.php//site/aboutE:/yii2/views/site/about.php
E:/yii2/controllers/SiteController.php/site/aboutE:/yii2/views/site/about.php
E:/yii2/modules/user/controllers/SiteController.php/site/aboutE:/yii2/modules/user/views/site/about.php
温馨提示:如果不指定模版的后缀名,默认为”.php”。