我需要在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
。基本上,render
和renderFile
之间没有区别,因为render
内部调用renderFile
。但是当您使用render
时,您可以以几种格式传递$view
,例如路径别名, 绝对路径在应用程序或模块和相对路径。对于renderFile
,您只能传递绝对文件路径或路径别名。