Настроить папку представлений для пакета в Symfony 5 - PullRequest
0 голосов
/ 25 апреля 2020

Вот мой контроллер:

<?php
//Controller/MenuController

namespace Mybdl\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;

class MenuController extends AbstractController {

    function menu(Request $request) 
    {
        return $this->render('MybdlBundle:menu:index.html.twig');
        //return $this->render('menu/index.html.twig');
    }

}

Вид меню / указатель. html .twig не найден. Вот мой взгляд с полным путем вверху файла

{#Resources/views/menu/index.html.twig#}
<div> Testing the menu </div>
{# {{ knp_menu_render('App\MenuBundle\Menu::class:mainMenu') }} #}

Вот расширение пакета:

<?php
//DependencyInjection/MybdlExtension.php
declare(strict_types=1);

namespace Mybdl\DependencyInjection;

use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;

class MybdlExtension extends Extension
{
    public function load(array $configs, ContainerBuilder $container)
    {
        $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('services.yml');
    }
}

Полный код можно найти здесь: https://github.com/karimmtl/Mysymfony5/tree/master/mine/mybdl-bundle

1 Ответ

1 голос
/ 25 апреля 2020

Этот синтаксис был отброшен после введения нового . Для каждого установленного пакета будет автоматически зарегистрировано пространство имен @BundleName.

Так что вам следует render('@Mybdl/menu/index.html.twig');.

Обратите внимание, что представления имеют специальный сокращенный синтаксис , который автоматически добавляет Bundle.

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