Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Yii difference between rendering functions

I sometimes get messed up by the three rendering methods:

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

Please could you explain. Thank you!

like image 298
Nam G VU Avatar asked Apr 30 '12 07:04

Nam G VU


People also ask

What is difference between render and renderPartial in Yii?

renderPartial() is commonly used to render a "piece" of a page. The main difference from render() is that this method does not place the results of the render in a layout. By default it also does not perform output processing, but you can override this behavior using the $processOutput parameter.

What is render in yii2?

render(): renders a named view and applies a layout to the rendering result. renderPartial(): renders a named view without any layout. renderAjax(): renders a named view without any layout, and injects all registered JS/CSS scripts and files. It is usually used in response to AJAX Web requests.


1 Answers

render() is commonly used to render a view that corresponds to what a user sees as a "page" in your application. It first renders the view you have specified and then renders the layout for the current controller action (if applicable), placing the result of the first render into the layout. It then performs output processing (which at this time means automatically inserting any necessary <script> tags and updating dynamic content) and finally outputs the result.

renderPartial() is commonly used to render a "piece" of a page. The main difference from render() is that this method does not place the results of the render in a layout. By default it also does not perform output processing, but you can override this behavior using the $processOutput parameter.

renderFile() is a low-level method that does the grunt work of rendering: it extracts the data variables in the current scope and then runs the view code. The other two methods internally call this one, but you should practically never need to call it yourself. If you do, keep in mind that you need to pass in a file path (not a view path).

like image 196
Jon Avatar answered Sep 21 '22 23:09

Jon