Меню КНП Symfony 3.4
Мне трудно заставить это работать, я получаю следующую ошибку:
Невозможно найти шаблон "KnpMenuBundle::menu.html.twig" (просматривал: D:\Server\htdocs\symfonudem\app/Resources/views, D:\Server\htdocs\symfonudem\vendor\symfony\symfony\src\Symfony\ мост \Twig/ Ресурсы / просмотров / форма).
Ниже приведен мой код для класса Builder.
<?php
namespace AppBundle\Menu;
use Knp\Menu\FactoryInterface;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerAwareTrait;
class Builder
{
use ContainerAwareTrait;
public function mainMenu(FactoryInterface $factory, array $options)
{
$menu = $factory->createItem('root');
$menu->addChild('Home', ['route' => 'homepage']);
return $menu;
}
}
?>
А вот код для base.html.twig
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %}
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
{% endblock %}
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
</head>
<body>
{{ knp_menu_render('AppBundle:Builder:mainMenu') }}
{% block body %}{% endblock %}
{% block javascripts %}
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
{% endblock %}
</body>
</html>
Ваши предложения будут оценены по достоинству.
2 ответа
Попробуй добавить
templating:
engines: ['twig']
в разделе фреймворка в файле конфигурации
Вы можете указать полный путь к построителю меню следующим образом:
{{ knp_menu_render('AppBundle:Builder:institutionMenu', {'allow_safe_labels': true, 'currentClass': 'active' })|raw }}