在Yii2中的其他地方渲染视图 - 没有renderPartial?

Bre*_*ett 12 php yii yii2

我需要在自定义组件文件中呈现局部视图Yii2,根据Yii文档,您可以通过以下方式访问视图实例:

\Yii::$app->view->renderFile('@app/views/site/license.php');
Run Code Online (Sandbox Code Playgroud)

我继续尝试:

Yii::$app->view->renderPartial('//my/view/');
Run Code Online (Sandbox Code Playgroud)

...但是我得到了一个错误,我试图访问一个不存在的方法.

然后我检查了视图类并注意到它没有renderPartial,这是控制器类的方法.

我看到它有renderFile方法和render方法; 我应该使用以下哪些?

文档没有说明render方法包含的布局就像控制器类中的同名方法一样,所以我不确定; 对于renderFile,我不是100%确定是否合适?

有人可以解释哪种方法会产生相同的结果renderPartial吗?

Ton*_*ony 27

您可以renderPartialYii::$app->controller->renderPartial('myview');也可以从yii\base\Controller renderPartial调用的源代码中看到调用View的render方法,以便您可以使用Yii::$app->view->render.基本上,render和之间没有区别renderFile,因为render内部调用renderFile.但是当你使用时,render你可以传递$view几种格式,如路径别名,应用程序中的绝对路径whithin模块相对路径.并且renderFile您只能传递绝对文件路径或路径别名.