php - 如何从位于“/资源/视图”?
问题描述
我正在为我之前作为可移植包制作的 Symfony Web 项目创建一个应用程序。我创建了一个“media.html.twig”模板并希望它被 render() 辅助函数调用。
我已经激活了 /config/bundles.php 中的包
App\OM\MediaManagerBundle\OMMediaManagerBundle::class => ['all' => true],
并按照本网站https://symfony.com/doc/current/bundles.html上的说明设置 Symfony-Bundle 文件夹结构和所需文件。如本网站https://symfony.com/doc/4.1/bundles/best_practices.html#resources所述,我已在路径前加上“@MediaManager” 。
这是我的控制器类:
<?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).
当我在 /templates 文件夹中移动“media.html.twig”模板时,该代码确实有效,但我希望它会破坏捆绑包的可移植性,因此不想这样做。
如何从我的 OMMediaManagerController 类中访问此模板?我是否以正确的方式使用 Symfony Bundles?一般来说,还有更多关于 Bundles 的文档吗?我发现官方网站提供的非常缺乏。
解决方案
推荐阅读
- react-native - Estimote 的 RN 包装器(react-native-proximity)无法检测到信标
- java - 印度金融交易的 BigDecimal 舍入模式是什么?
- c# - 在创建按钮期间分配按钮颜色(运行时)
- java - Rocket Chat 构建成功,运行时抛出错误
- django - Django:尝试将对象从 django admin 显示到 HTML 页面
- excel - 尝试从 Excel VBA 登录网页,但用户名和密码显示为灰色
- android - 带有两个数据库“表”、“外键”和“实时数据”的房间
- vb.net - 如何单击具有其名称的按钮
- node.js - TypeError:当我解决承诺时无法读取未定义的属性“then”
- reactjs - 如何使用 Create React App 实现 skipWaiting?