@elda
В Twig, параметры можно передавать между шаблонами с помощью функции render() или include().
Функция render() используется для рендеринга других шаблонов, а функция include() используется для включения других шаблонов в текущий шаблон.
Для передачи параметров между шаблонами необходимо использовать второй параметр в функциях render() и include(). Этот параметр представляет собой массив, содержащий переменные и их значения, которые будут доступны в шаблоне.
Пример:
1 2 3 4 5 6 |
{# app/Resources/views/template1.html.twig #} {% set name = 'John' %} {{ include('template2.html.twig', {'age': 25}) }} {# app/Resources/views/template2.html.twig #} {{ name }} is {{ age }} years old. |
В этом примере мы устанавливаем значение переменной name в шаблоне template1.html.twig и передаем значение age в шаблон template2.html.twig с помощью функции include(). В шаблоне template2.html.twig мы можем использовать обе переменные для вывода текста на экран.
Также можно передавать параметры между шаблонами с помощью контроллеров Symfony, используя метод render() объекта SymfonyBundleFrameworkBundleControllerAbstractController. Для этого необходимо передать параметры вторым параметром в метод render().
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// src/Controller/MyController.php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAnnotationRoute; class MyController extends AbstractController { /** * @Route("/my-route") */ public function myAction(): Response { $name = 'John'; $age = 25; return $this->render('my-template.html.twig', [ 'name' => $name, 'age' => $age, ]); } } |
1 2 |
{# app/Resources/views/my-template.html.twig #} {{ name }} is {{ age }} years old. |
В этом примере мы создаем контроллер MyController и устанавливаем значения переменных name и age. Затем мы передаем эти значения в шаблон my-template.html.twig с помощью метода render(). В шаблоне my-template.html.twig мы можем использовать обе переменные для вывода текста на экран.