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()的“控制台命令”位。那是我的救命稻草。