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

Функция block

Функция block используется в механизме наследования шаблонов Twig. Она объявляет именованный участок шаблона, который дочерний шаблон может переопределить через тег extends. Первым параметром передаётся имя блока, а внутри тела блока размещается его содержимое. Функция также позволяет вывести содержимое родительского блока через parent.

Синтаксис

{% block name %} ...content... {% endblock %}

Пример

Давайте создадим базовый шаблон с блоком content:

<!DOCTYPE html> <html> <body> {% block content %} <p>default content</p> {% endblock %} </body> </html>

Теперь создадим дочерний шаблон, который переопределяет этот блок:

{% extends 'base.html.twig' %} {% block content %} <p>article content</p> {% endblock %}

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

<!DOCTYPE html> <html> <body> <p>article content</p> </body> </html>

Пример

Давайте выведем содержимое родительского блока через функцию parent и добавим своё:

{% extends 'base.html.twig' %} {% block content %} {{ parent() }} <p>article content</p> {% endblock %}

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

<!DOCTYPE html> <html> <body> <p>default content</p> <p>article content</p> </body> </html>

Пример

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

<?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('/article', name: 'article_index')] public function index(): Response { return $this->render('article/index.html.twig', [ 'text' => 'hello' ]); } } ?>

И выведем её внутри блока:

{% extends 'base.html.twig' %} {% block content %} <p>{{ text }}</p> {% endblock %}

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

<!DOCTYPE html> <html> <body> <p>hello</p> </body> </html>

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

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