使用Symfony 3.4配置新的存储库时遇到了一些麻烦.我已经使用symfony命令创建了他的最后一个LTS(3.4),我也使用命令添加了一个新的Bundle.我的新Bundle已经运行良好,但是我不能使用存储在这个包中的视图.

我告诉你我的Bundle的结构:

我想在我的控制器中使用这个index.html.twig,如下所示:

<?PHP

namespace Lister\ListerBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class DefaultController extends Controller
{
    /**
     * @Route("/lister")
     */
    public function indexAction()
    {
        return $this->render('ListerListerBundle:Default:index.html.twig');
    }
}

但是当我尝试渲染它时,我发现了这个错误.

Unable to find template “ListerListerBundle:Default:index.html.twig” (looked into: /home/emendiel/Data/Code/Perso/WebLister/app/Resources/views,/home/emendiel/Data/Code/Perso/WebLister/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form).

我明白这说什么,我的文件夹不是symfony搜索我的视图的地方但是我没有找到我怎么说Symfony进入“ListerBundle / Ressources / views”

在我最老的项目中没有其他配置工作.

信息:我使用我的捆绑包作为可重复使用的捆绑包.

问候,

PS:这是我在composer.json中的自动加载部分

"autoload": {
    "psr-4": {
        "": "src/"
    },"classmap": [
        "app/AppKernel.PHP","app/AppCache.PHP"
    ]
},

PSS:我的AppKernel:

public function registerBundles()
{
    $bundles = [
        new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),new Symfony\Bundle\SecurityBundle\SecurityBundle(),new Symfony\Bundle\TwigBundle\TwigBundle(),new Symfony\Bundle\MonologBundle\MonologBundle(),new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),new AppBundle\AppBundle(),new Lister\ListerBundle\ListerListerBundle(),];
...

再说一遍:这里我的依赖注入

和文件的内容:

的configuration.PHP

<?PHP

namespace Lister\ListerBundle\DependencyInjection;

use Symfony\Component\Config\DeFinition\Builder\TreeBuilder;
use Symfony\Component\Config\DeFinition\ConfigurationInterface;

/**
 * This is the class that validates and merges configuration from your app/config files.
 *
 * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/configuration.html}
 */
class Configuration implements ConfigurationInterface
{
    /**
     * {@inheritdoc}
     */
    public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('lister_lister');

        // Here you should define the parameters that are allowed to
        // configure your bundle. See the documentation linked above for
        // more information on that topic.

        return $treeBuilder;
    }
}

ListerListerExtension.PHP

<?PHP

namespace Lister\ListerBundle\DependencyInjection;

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

/**
 * This is the class that loads and manages your bundle configuration.
 *
 * @link http://symfony.com/doc/current/cookbook/bundles/extension.html
 */
class ListerListerExtension extends Extension
{
    /**
     * {@inheritdoc}
     */
    public function load(array $configs,ContainerBuilder $container)
    {
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration,$configs);

        $loader = new Loader\YamlFileLoader($container,new FileLocator(__DIR__.'/../Resources/config'));
        $loader->load('services.yml');
    }
}

解决方案:来自@Cerad

@ ListerLister /默认/ index.html.twig

来自@Cerad的原始回复

For some reason,S3.4 no longer likes the Bundle:Dir:name approach to specifying twig paths and the generate:bundle command has not yet been updated. Not sure if it is a bug or feature. The @ListerLister/Default/index.html.twig path suggested above should work. Try bin/console debug:twig to see your twig namespaces paths. – Cerad

基本问题似乎是在S3.4中,不再支持twig模板路径,例如’ListerListerBundle:Default:index.html.twig’.

用以下内容替换控制器中的路径:

'@ListerLister/Default/index.html.twig'

一切都应该好.如果您不确定实际的名称空间前缀是什么,那么运行:

bin/console debug:twig

列出他们.

S3.3仍然可以正常工作,所以这在3.4中有所改变.假设无论如何都要使用命名空间格式,所以这不是什么大问题.

我确实在github:https://github.com/sensiolabs/SensioGeneratorBundle/issues/587上提出了这个问题

我们将看到维护者必须说些什么.

更新:伟大而强大的Fabpot自己回答了我的问题.如果您想继续使用模板的’ListerListerBundle:Default:index.html.twig’格式,请编辑您的app / config / config.yml文件:

# app/config/config.yml
framework:
    templating:
        engines: ['twig']

如果您的遗留代码仍使用旧格式,则应该只执行此操作.对所有新代码使用twig名称空间.

php – Symfony 3.4在我的包中使用视图的更多相关文章

  1. html5录音功能实战示例

    这篇文章主要介绍了html5录音功能实战示例的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. 基于 HTML5 WebGL 实现的医疗物流系统

    物联网( IoT ),简单的理解就是物体之间通过互联网进行链接。这篇文章给大家介绍基于 HTML5 WebGL 实现的医疗物流系统,感兴趣的朋友跟随小编一起看看吧

  3. HTML5页面无缝闪开的问题及解决方案

    这篇文章主要介绍了HTML5页面无缝闪开方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. HTML5跳转小程序wx-open-launch-weapp的示例代码

    这篇文章主要介绍了HTML5跳转小程序wx-open-launch-weapp的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. ios – 如果app bundle不包含推送通知中收到的“loc-key”的密钥怎么办?

    根据appledocumentation,通知有效载荷可以携带“loc-key”键,其识别appbundle中的本地化字符串键.如果应用程序包中没有这样的密钥会发生什么情况?

  6. ios – 强制本地化内部框架,如UIKit,无需重启App

    我必须在应用程序中添加一个切换语言的选项.我只是坚持本地化内部framworks.任何人都可以帮助我从应用程序本身的内部框架本地化,如UIKit等,而无需重新启动.我的代码工作正常,但对于内部框架的情况需要重新启动.只是内部框架没有得到本地化.我目前的代码是:创建一个名为BundleExtension.swift的文件,并将以下代码添加到其中–现在,无论何时需要更改语言,都可以调用此方法:解决方法

  7. ios – 如何在Xcode 7中自动化UI测试期间访问本地化字符串?

    所以我必须先转换它才能知道它在使用NSLocalizedString之前的原因:有没有简单的方法来解决Xcode中的这个问题?如果可能的话,我不想在我的代码中使用这些无意义的字符串,很难知道它是什么.或者我必须编写一个脚本来处理这个问题?

  8. ios – 无法启动iPhone模拟器

    /Library/Developer/CoreSimulator/Devices/530A44CB-5978-4926-9E91-E9DBD5BFB105/data/Containers/Bundle/Application/07612A5C-659D-4C04-ACD3-D211D2830E17/ProductName.app/ProductName然后,如果您在Xcode构建设置中选择标准体系结构并再次构建和运行,则会产生以下结果:dyld:lazysymbolbindingFailed:Symbol

  9. xcode – 打开模块的导入文件:权限被拒绝

    我在另一台计算机上设置了一个远程Git存储库和XcodeServer,然后在Xcode中创建了一个bot.每次我尝试进行新的集成时,都会失败并出现如下错误:如果我评论此文件中的所有内容,bot会开始为另一个框架(以及另一个.swift文件)显示相同的错误.它可以是Swift或Objective-C框架.此项目的搜索路径为:$(PROJECT_DIR),并且“始终搜索用户路径”设置为“是”我正在使用

  10. ios – 如何在不使用单独的捆绑包的情况下将我的资源文件包含在框架中?

    解决方法为什么不想为框架使用单独的bundle?

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部