首页 > 解决方案 > Yii2 - 位于子文件夹中的渲染视图

问题描述

我正在使用 Yii2,我想知道哪种方法是从控制器呈现位于视图目录中子文件夹中的文件的正确方法。例如,我有以下情况:

views
-campus (carpeta)
--actividad (subcarpeta)
---2020.php (vista)

到目前为止,我已经尝试过这个选项,但没有成功:

return $this->render('/actividad/2020',[]); 
return $this->render('/actividad/2020',[],$this->context); 
return $this->render('2020',[],$this->context); 
return $this->render('@app/views/campus/actividad/2020',[]); 
return $this->render('//actividad/2020',[]);

我的控制器CampusController

<?php

namespace frontend\controllers;
class CampusController extends \yii\web\Controller
{  
    public function action2020()
    {
        return $this->render('actividad/2020');
        //return $this->render('/campus/actividad/2020');
        //return $this->render('//campus/actividad/2020');
        //return $this->render('@app/views/campus/actividad/2020');
    }
}

标签: phpviewyii2rendersubdirectory

解决方案


如果您在CampusController,想要渲染2020.php,并拥有您在问题中显示的文件夹结构:

views
-campus (carpeta)
--actividad (subcarpeta)
---2020.php (vista)

以下所有方法都可以:

return $this->render('actividad/2020');
return $this->render('/campus/actividad/2020');
return $this->render('//campus/actividad/2020');
return $this->render('@app/views/campus/actividad/2020');

如果你没有向视图传递任何参数,你可以传递一个空数组,但你也可以删除第二个参数。

您确实需要返回 的结果$this->render(...),在您的问题中,看起来您正在调用 return after,这将返回一个空响应,而不是呈现视图文件的结果。


推荐阅读