Общий код для шаблонов веток в Symfony (4) - PullRequest
0 голосов
/ 13 июня 2018

Я не понимаю, как я могу сделать общий или общий код для своего приложения, например, я должен отобразить все категории, чтобы создать меню HTML, и этот код предназначен для ВСЕХ веб-сайтов, я не могу поместить этот кодтолько в одном контроллере.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Вы можете достичь того, что вы хотите, как это:

/ templates / layout / menu.html.twig:

<ul>
    {% for key,value in items %}
        <li>
            <a href="{{ value.link }}">
                {{ key }}
            </a>
        </li>
    {% endfor %}
</ul>

MenuController:

<?php
    namespace App\Controller;

    use Symfony\Bundle\FrameworkBundle\Controller\Controller;

    class MenuController extends Controller
    {
        public function menu()
        {
            $items = array(
                'page' => array('link' => '/page/'),
                'page two' => array('link' => '/page/two')
            );

            return $this->render(
                'layout/menu.html.twig',
                array('items' => $items)
            );
        }
    }

затемв вашем base.html.twig (где угодно)

<div class="menu">
    {{ render(controller(
        'App\\Controller\\MenuController::menu'
    )) }}
</div>
0 голосов
/ 13 июня 2018

Вы ищете это https://symfony.com/doc/4.0/templating.html#template-inheritance-and-layouts

У вас должно быть что-то подобное во всех ваших twig файлах

{% extends 'base.html.twig' %}

И в этом base.html.twig вы можете создать свойменю только один раз:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...