Yii渲染功能之间的区别

Nam*_* VU 15 render view partial yii

我有时会被三种渲染方法弄乱:

  • Controller::render()
  • Controller::renderPartial()
  • Controller::renderFile()

请你解释一下.谢谢!

Jon*_*Jon 28

render()通常用于呈现与用户在应用程序中看到的"页面"对应的视图.它首先渲染您指定的视图,然后渲染当前控制器操作的布局(如果适用),将第一个渲染的结果放入布局中.然后它执行输出处理(此时意味着自动插入任何必要的<script>标签并更新动态内容),最后输出结果.

renderPartial()通常用于呈现页面的"片段".从主要的区别render()是,这种方法并不能代替在布局中渲染的结果.默认情况下,它也不执行输出处理,但您可以使用$processOutput参数覆盖此行为.

renderFile()是一种执行渲染工作的低级方法:它在当前作用域中提取数据变量,然后运行视图代码.另外两种方法在内部称之为,但你几乎不需要自己调用它.如果这样做,请记住您需要传入文件路径(而不是视图路径).


Pay*_*tey 5

渲染文件:

将使用set渲染引擎在给定文件上运行渲染方法.这在Yii中是相当低的级别,并且仅在内部或在控制台命令中真正使用.

渲染部分:

这将获取给定的别名,并使用所有本地变量(例如当前运行的控制器和模块以及别名定义)将其转换为文件路径.然后它几乎只使用渲染文件.

渲染:

这是渲染部分的组合,使我们的生活更轻松.它将在当前活动的控制器或已定义的控制器上呈现布局,呈现其中的所有内容,处理呈现的缓存,以及处理客户端脚本的输出.

希望能搞清楚.