gpt4 book ai didi

php - 在 Twig 中使用命名空间别名

转载 作者:行者123 更新时间:2023-12-01 11:44:57 25 4
gpt4 key购买 nike

我有一段代码可以检查 Twig 模板中的一些实体常量:

{% if logRecord.status is constant('App\\DealBundle\\Entity\\Deal::DEAL_STATE_MONEY_RESERVED') %}

但是每次都用这么长的类名,实在是太尴尬了。有没有办法在 Twig 中创建 namespace 别名?像这样的东西:

{% use App\\DealBundle\\Entity\\Deal %}
{% if logRecord.status is constant('Deal::DEAL_STATE_MONEY_RESERVED') %}

或者我总是需要写完整的类名?

最佳答案

我遇到了同样的问题,结果证明解决方案非常简单。这个宏在我们的例子中不起作用,因为我们不仅要将常量值用于渲染,还要将其用作值(int、string、float 等)。这是不可能的,因为使用这个宏,Twig 将值转换为 Twig_Markup 类。

所以解决方案是下一个。在您声明的模板中的某处:

    {% set namespace = 'App\\DealBundle\\Entity\\' %}

然后在另一个地方你可以这样使用它:

    {% if logRecord.status is constant(namespace~'Deal::DEAL_STATE_MONEY_RESERVED') %}

关于php - 在 Twig 中使用命名空间别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16114532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com