Twig에서 클래스 상수에 액세스하는 방법은 무엇입니까?
엔티티 클래스에는 몇 가지 클래스 상수가 있습니다.
class Entity {
const TYPE_PERSON = 0;
const TYPE_COMPANY = 1;
}
일반적인 PHP에서는 자주 사용 if($var == Entity::TYPE_PERSON)
하며 Twig에서 이런 종류의 작업을하고 싶습니다. 가능합니까?
{% if var == constant('Namespace\\Entity::TYPE_PERSON') %}
{# or #}
{% if var is constant('Namespace\\Entity::TYPE_PERSON') %}
constant
기능 및 constant
테스트에 대한 설명서를 참조하십시오 .
시간을 절약하기 위해. 네임 스페이스에서 클래스 상수에 액세스해야하는 경우
{{ constant('Acme\\DemoBundle\\Entity\\Demo::MY_CONSTANT') }}
1.12.1부터 객체 인스턴스에서도 상수를 읽을 수 있습니다.
{% if var == constant('TYPE_PERSON', entity)
네임 스페이스를 사용하는 경우
{{ constant('Namespace\\Entity::TYPE_COMPANY') }}
중대한! 단일 대신 이중 슬래시를 사용하십시오.
편집 : 더 나은 해결책을 찾았 습니다. 여기에 대해 읽으십시오.
수업이 있다고 가정 해 봅시다.
namespace MyNamespace;
class MyClass
{
const MY_CONSTANT = 'my_constant';
const MY_CONSTANT2 = 'const2';
}
나뭇 가지 확장 만들기 및 등록 :
class MyClassExtension extends \Twig_Extension
{
public function getName()
{
return 'my_class_extension';
}
public function getGlobals()
{
$class = new \ReflectionClass('MyNamespace\MyClass');
$constants = $class->getConstants();
return array(
'MyClass' => $constants
);
}
}
이제 다음과 같이 Twig에서 상수를 사용할 수 있습니다.
{{ MyClass.MY_CONSTANT }}
In book best practices of Symfony there is a section with this issue:
Constants can be used for example in your Twig templates thanks to the constant() function:
// src/AppBundle/Entity/Post.php
namespace AppBundle\Entity;
class Post
{
const NUM_ITEMS = 10;
// ...
}
And use this constant in template twig:
<p>
Displaying the {{ constant('NUM_ITEMS', post) }} most recent results.
</p>
Here the link: http://symfony.com/doc/current/best_practices/configuration.html#constants-vs-configuration-options
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 %}
참고URL : https://stackoverflow.com/questions/7611086/how-to-access-class-constants-in-twig
'Programing' 카테고리의 다른 글
jQuery로 현재 시간을 얻는 방법 (0) | 2020.07.05 |
---|---|
ES6 (ECMAScript 6)에서 변경 가능한 변수없이 x 번 반복하는 메커니즘이 있습니까? (0) | 2020.07.05 |
postgresql에서 월 및 연도별로 그룹 쿼리 결과 (0) | 2020.07.05 |
IllegalMonitorStateException없이 Java에서 대기 및 알림을 사용하는 방법은 무엇입니까? (0) | 2020.07.04 |
Visual Studio Code-메모장 ++ 용 플러그인과 같은 비교 기능이 있습니까? (0) | 2020.07.04 |