如何访问 Twig 中的类常量?
我的实体类中有一些类常量,例如:
class Entity {
const TYPE_PERSON = 0;
const TYPE_COMPANY = 1;
}
在普通的 PHP 中,我经常做 if($var == Entity::TYPE_PERSON)
并且我想在 Twig 中做这种事情。是否可以?
I have a few class constants in my entity class, e.g.:
class Entity {
const TYPE_PERSON = 0;
const TYPE_COMPANY = 1;
}
In normal PHP I often do if($var == Entity::TYPE_PERSON)
and I would like to do this kind of stuff in Twig. Is it possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
只是为了节省您的时间。如果需要访问命名空间下的类常量,请使用
Just to save your time. If you need to access class constants under namespace, use
请参阅
constant
函数 和常量
测试。See documentation for the
constant
function and theconstant
test.从 1.12.1 开始,您还可以从对象实例读取常量:
As of 1.12.1 you can read constants from object instances as well:
如果您使用命名空间
重要!使用双斜杠,而不是单斜杠
If you are using namespaces
Important! Use double slashes, instead of single
编辑:我找到了更好的解决方案,在此处阅读相关内容。
假设您有课程:
创建和注册 Twig 扩展:
现在您可以在 Twig 中使用常量,例如:
Edit: I've found better solution, read about it here.
Let's say you have class:
Create and register Twig extension:
Now you can use constants in Twig like:
在《Symfony 最佳实践》一书中,有一个章节涉及这个问题:
并在模板 twig 中使用此常量:
这里是链接:
http://symfony.com/doc/current/best_practices /configuration.html#constants-vs-configuration-options
In book best practices of Symfony there is a section with this issue:
And use this constant in template twig:
Here the link:
http://symfony.com/doc/current/best_practices/configuration.html#constants-vs-configuration-options
几年后我意识到我以前的答案并不是那么好。我创建了可以更好地解决问题的扩展。它作为开源发布。
https://github.com/dpolac/twig-const
它定义了新的 Twig 运算符
#
它允许您通过该类的任何对象访问类常量。像这样使用它:
{% ifentity.type ==entity#TYPE_PERSON %}
After some years I realized that my previous answer is not really so good. I have created extension that solves problem better. It's published as open source.
https://github.com/dpolac/twig-const
It defines new Twig operator
#
which let you access the class constant through any object of that class.Use it like that:
{% if entity.type == entity#TYPE_PERSON %}