vista mvc modulos modelo example ejemplo controlador view yii render partial

view - mvc - Diferencia Yii entre funciones de renderizado



yii2 mvc example (3)

A veces me confunden los tres métodos de renderizado:

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

Por favor podrías explicarme ¡Gracias!


renderPartial () es realmente útil para mostrar componentes ssi en una página, es decir, encabezados, pies de página, widgets, etc.


render() se usa comúnmente para representar una vista que corresponde a lo que un usuario ve como una "página" en su aplicación. Primero representa la vista que ha especificado y luego representa el diseño de la acción del controlador actual (si corresponde), colocando el resultado del primer render en el diseño. A continuación, realiza el procesamiento de salida (que en este momento significa insertar automáticamente cualquier etiqueta <script> necesaria y actualizar el contenido dinámico) y finalmente genera el resultado.

renderPartial() se usa comúnmente para representar una "pieza" de una página. La diferencia principal de render() es que este método no coloca los resultados del renderizado en un diseño. De manera predeterminada, tampoco realiza el procesamiento de salida, pero puede anular este comportamiento utilizando el parámetro $processOutput .

renderFile() es un método de bajo nivel que hace el arduo trabajo de la representación: extrae las variables de datos en el alcance actual y luego ejecuta el código de vista. Los otros dos métodos lo llaman internamente, pero prácticamente nunca deberías llamarlo tú mismo. Si lo hace, tenga en cuenta que debe pasar una ruta de archivo (no una ruta de vista).


Renderizar archivo :

Ejecutará los métodos de representación en un archivo determinado con el motor de representación establecido. Este es un nivel bastante bajo dentro de Yii y solo realmente se usa internamente o en comandos de consola.

Render Parcial :

Esto toma el alias dado y lo convierte en una ruta de archivo usando todas las variables locales tales como los controladores y módulos actuales en ejecución y las definiciones de alias. Entonces, prácticamente solo usa el archivo de renderizado.

Render :

Esta es una combinación de parciales de render para facilitar nuestras vidas. Hará que el diseño en el controlador activo actualmente, o el definido, rinda todo el contenido dentro de él, maneje el almacenamiento en caché de los renders y procese el resultado para los scripts del cliente.

Espero que eso lo aclare.