在yiii的其他地方渲染视图-没有renderPartial


Rendering views in other places in Yii2 - no renderPartial?

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

'Yii::$app->view->renderFile('@app/views/site/license.php');

我继续尝试:

Yii::$app->view->renderPartial('//my/view/');

…但后来得到一个错误,我试图访问一个不存在的方法。

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

我看到它有一个renderFile方法和一个render方法;我应该使用哪一个?

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

有人能解释一下哪种方法会产生与renderPartial相同的结果吗?

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