View Yii渲染函数之间的差异

View Yii渲染函数之间的差异,view,yii,render,partial,View,Yii,Render,Partial,我有时会被三种渲染方法弄得一团糟: Controller::render() Controller::renderPartial() Controller::renderFile() 请你解释一下。谢谢大家! 渲染文件: 将使用“设置渲染引擎”在给定文件上运行渲染方法。这在Yii中是相当低的级别,只在内部或控制台命令中使用 渲染部分: 这将获取给定的别名,并使用所有本地变量(如当前运行的控制器和模块以及别名定义)将其转换为文件路径。然后它几乎只使用渲染文件 渲染: 这是渲染部分的组合,使我们

我有时会被三种渲染方法弄得一团糟:

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

请你解释一下。谢谢大家!

渲染文件:

将使用“设置渲染引擎”在给定文件上运行渲染方法。这在Yii中是相当低的级别,只在内部或控制台命令中使用

渲染部分

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

渲染

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

希望能澄清这一点。

renderPartial()对于在页面中显示ssi组件(即页眉、页脚、小部件等)非常有用。

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

renderPartial()
通常用于呈现页面的“一部分”。与
render()
的主要区别在于,此方法不会将渲染结果放置在布局中。默认情况下,它也不执行输出处理,但您可以使用
$processOutput
参数覆盖此行为


renderFile()
是一种低级方法,用于执行繁重的渲染工作:它提取当前范围内的数据变量,然后运行视图代码。其他两个方法在内部称为此方法,但实际上您不需要自己调用它。如果需要,请记住您需要传入一个文件路径(而不是视图路径)。

@Paystey Awesome edit^谢谢我想提醒大家注意renderFile()的“控制台命令”位。那是我的救命稻草。