РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
100 of 1361 menu

Функция render

Функция render вызывается внутри метода контроллера и возвращает объект Response, содержащий результат обработки Twig-шаблона. Первым параметром передаётся путь к шаблону относительно директории templates. Вторым параметром передаётся массив переменных, которые станут доступны внутри шаблона. Функция доступна в контроллерах, расширяющих AbstractController.

Синтаксис

$this->render(view, parameters)

Пример

Давайте отрендерим шаблон article/index.html.twig без передачи переменных:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(): Response { return $this->render('article/index.html.twig'); } } ?>

Содержимое шаблона templates/article/index.html.twig:

<p>hello</p>

Результат выполнения кода:

<p>hello</p>

Пример

Давайте передадим переменную text из контроллера в шаблон:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(): Response { return $this->render('article/index.html.twig', [ 'text' => 'abcde', ]); } } ?>

Содержимое шаблона templates/article/index.html.twig:

<p>{{ text }}</p>

Результат выполнения кода:

<p>abcde</p>

Пример

Давайте передадим в шаблон массив переменных:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/', name: 'article_index')] public function index(): Response { return $this->render('article/index.html.twig', [ 'title' => 'article', 'items' => ['a', 'b', 'c', 'd', 'e'], ]); } } ?>

Содержимое шаблона templates/article/index.html.twig:

<h2>{{ title }}</h2> <ul> {% for item in items %} <li>{{ item }}</li> {% endfor %} </ul>

Результат выполнения кода:

<h2>article</h2> <ul> <li>a</li> <li>b</li> <li>c</li> <li>d</li> <li>e</li> </ul>

Смотрите также

  • функция controller,
    которая рендерит шаблон прямо из Twig
  • функция include,
    которая подключает один шаблон внутрь другого
  • тег extends,
    который наследует шаблон от базового
  • тег block,
    который задаёт переопределяемый блок шаблона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить