New_Horizons
@New_Horizons
Бред:

Как добавить переменную в определённый шаблон twig 1.*?

Twig 1.* используется как отдельная библиотека (не в составе symfony или типа того).

Есть определённый шаблон, который подключается в других шаблонах. Этот включаемый шаблон требует несколько переменных. Как мне указать их один раз, а не передавать каждый раз из контроллера? Наверное на примерах будет понятнее.

Для тех, кто знаком с Laravel:
Мне нужен аналог \View::composer();

Допустим делаем интернет-магазин, несколько страниц, у большинства есть шапка и подвал.
В шапке нам нужно выводить список категорий.

Примерно так происходит рендер в контроллере:
spoiler

protected function render(string $view, array $params = [])
{
	$loader = new FilesystemLoader(base_path('/resources'));

	$twig = new Environment($loader, ['cache' => base_path('/var/cache/twig'), 'debug' => true]);

	$content = $twig->render($view, $params);

	return Response::create($content);
}


Есть шаблон 'template.twig'
spoiler

<!DOCTYPE html>
<html lang="ru">
	<head>
	<title>Интернет-магазин</title>
	</head>
	<body>
		<header>
			<ul>
				{% for category in categories %}
					<li><a href="{{ category.url}}">{{ category.name}}</a></li>
				{% endfor %}
			</ul>
		</header>
		<div class="content">
			{% block content %}{% endblock %}
		</div>
		<footer></footer>
	</body>
</html>


И есть несколько шаблонов, которые его расширяют.
spoiler

{% extends "template.twig" %}

{% block content %}
	Тут какой-то контент, у каждой страницы свой
{% endblock %}



Нужно сделать так, чтобы переменная categories была всегда доступна в template.twig
  • Вопрос задан
  • 157 просмотров
Решения вопроса 1
solotony
@solotony
покоряю пик Балмера
я завожу в twig 1 глобальную переменную типа "website" , а уже внутри шаблонов дергаю ее методы по мере необходимости

addGlobal
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 14:21
15000 руб./за проект
25 апр. 2024, в 14:07
20000 руб./за проект
25 апр. 2024, в 14:06
2500 руб./за проект