【问题标题】:adding namespaced twig paths添加命名空间的树枝路径
【发布时间】:2019-01-23 08:45:30
【问题描述】:

我想在我的 symfony 项目中使用 bootstrap 4 CoreUi 模板。 我用

将它添加到我的项目中

作曲家需要 coreui/coreui

现在 coreui 在我的 vendor 目录中,我想在 twig.yaml 中添加一个路径以简化其访问,根据the doc 我修改了我的 twig.yaml 文件如下:

twig:
#    paths: ['%kernel.project_dir%/templates']
    debug: '%kernel.debug%'
    strict_variables: '%kernel.debug%'
    paths:
        - '%kernel.project_dir%/templates'
        - '%kernel.project_dir%/vendor/coreui': coreui

我得到一个错误异常:

注意:未定义的索引:值

文档没有说太多......所以我现在不知道该怎么办。

【问题讨论】:

  • “bin/console debug:twig”是否运行?仔细查看multiple paths 示例。看出区别了吗?
  • 我愿意,但我想保留默认模板路径,如果我删除破折号,我还有另一个问题,说我的 yaml 文件无效。

标签: symfony twig yaml symfony4


【解决方案1】:

paths: 得到两个参数为array,这里

%kernel.project_dir%/templates%kernel.project_dir%/vendor/coreui 是必须存在的目录,如果不存在则需要创建或删除,如果不需要其中之一。

我的是这样的:

twig:
    paths: ['%kernel.project_dir%/templates']
    debug: '%kernel.debug%'
    strict_variables: '%kernel.debug%' 

【讨论】:

    【解决方案2】:

    很抱歉在我的 cmets 中发布了错误的链接。你得到的错误是一个树枝“特征”。基本上只需要为空白命名空间提供一个值。

    twig:
       #paths: ['%kernel.project_dir%/templates']
        debug: '%kernel.debug%'
        strict_variables: '%kernel.debug%'
        paths:
           #'%kernel.project_dir%/templates': '' # add : ''
            '%kernel.project_dir%/vendor/coreui': coreui
    

    运行 bin/console debug:twig,一切都会好起来的。

    更新:根据下面与@yceruto 以及github issue 的讨论,我将答案更改为简单地注释掉默认模板行。事实证明它是不需要的,并且有一个拉取请求来删除它。一直想知道为什么它首先存在。

    【讨论】:

    • 添加'%kernel.project_dir%/templates'paths 配置不是必需的,它已经通过default_path 配置从Symfony 3.4 添加。而正确的null命名空间应该是~而不是空字符串''
    • @yceruto 关于波浪号与空,最终结果是相同的。我有点认为''在这种情况下更容易理解。删除默认模板目录有一个相当有趣的副作用,就是将“None”命名空间行移动到搜索顺序的底部。这将使覆盖供应商模板变得具有挑战性。不太确定为什么它会改变顺序,但确实如此。不是我建议弄乱的东西。
    • 是的,结果相同,因为 TwigBundle 检查空命名空间的方式 !$namespace 但我可能会误解为空白命名空间意味着“无命名空间”,这在 Twig 上下文中是错误的。
    • 关于命名空间的顺序,没关系,只有每个命名空间内的路径顺序在覆盖机制中很重要。
    • @yceruto 我担心我们在这里可能有点跑题了,但出于好奇,为什么“开箱即用”的 twig.yaml 文件首先包含路径部分?您似乎在争论根本没有必要。
    猜你喜欢
    • 2012-09-02
    • 2013-04-13
    • 1970-01-01
    • 2020-08-17
    • 2016-12-18
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多