Ответ 1
render()
обычно используется для визуализации представления, которое соответствует тому, что пользователь видит как "страница" в вашем приложении. Сначала он отображает указанное вами представление, а затем отображает макет для текущего действия контроллера (если применимо), помещая результат первого рендера в макет. Затем он выполняет обработку вывода (которая в это время означает автоматическую вставку любых необходимых тегов <script>
и обновление динамического содержимого) и, наконец, выводит результат.
renderPartial()
обычно используется для визуализации "части" страницы. Основное отличие от render()
заключается в том, что этот метод не помещает результаты рендера в макет. По умолчанию он также не выполняет обработку вывода, но вы можете переопределить это поведение с помощью параметра $processOutput
.
renderFile()
- это низкоуровневый метод, который выполняет грубую работу рендеринга: он извлекает переменные данных в текущей области и затем запускает код представления. Другие два метода внутренне называют это, но вам практически не нужно называть это самим. Если вы это сделаете, имейте в виду, что вам нужно пройти по пути к файлу (а не по пути просмотра).