Как получить доступ к шаблону из пакета Symfony, который находится в "<BundleLocation> / Ресурсы / виды"? - PullRequest
0 голосов
/ 29 октября 2019

Я создаю приложение для веб-проекта Symfony, которое я сделал ранее как переносимый пакет. Я создал шаблон «media.html.twig» и хочу, чтобы он вызывался вспомогательной функцией render ().

Я активировал пакет в /config/bundles.php с помощью

App\OM\MediaManagerBundle\OMMediaManagerBundle::class => ['all' => true],

и следуйте инструкциям на этом сайте https://symfony.com/doc/current/bundles.html для настройки структуры папок Symfony-Bundle и необходимых файлов. Я добавил префикс пути к @MediaManager, как сказано на этом сайте https://symfony.com/doc/4.1/bundles/best_practices.html#resources.

Это мой класс Controller:

<?php


namespace App\OM\MediaManagerBundle\Controller;


use App\OM\MediaManagerBundle\Form\ImageType;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;

class MediaManagerController extends AbstractController
{
    const TEMPLATE = "@MediaManager/MediaManager/media.html.twig";

    /**
     * @Route("/media/", name="om_mediamanager_media")
     * */
    public function index(Request $request)
    {
        $form = $this->createForm(ImageType::class);

        return $this->render(self::TEMPLATE,
            [
               'form'   =>  $form->createView(),
            ]);
    }
}

Вот так выглядит структура моей папки внутри src: https://i.imgur.com/9UomIEK.png

Я надеялся, что моя форма будет отображаться, но вместо этого я получил сообщение об ошибке:

There are no registered paths for namespace "MediaManager".

Я знаю, что он начинает смотреть из папки / templates, поэтому я попытался настроитьпуть к "../src/OM/MediaManagerBundle/Resources/views/MediaManager/media.html.twig", но получил

Looks like you try to load a template outside configured directories (../src/OM/MediaManagerBundle/Resources/views/MediaManager/media.html.twig).

код работает, когда я перемещаю "media.html.twigmsgstr "шаблон внутри папки / templates, но я ожидаю, что он разрушит переносимость пакета и поэтому не хочет этого делать.

Как получить доступ к этому шаблону из моего класса OMMediaManagerController? Правильно ли я использую Symfony Bundles? Есть ли еще документация по Bundles в целом? Мне показалось, что те, которые предоставлены официальным сайтом, очень не хватает.

1 Ответ

0 голосов
/ 30 октября 2019

Проблема решилась сама собой. Подробности в комментариях к вопросу.

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