10

我有一个包含数组形式的常量选项的类:

namespace MyNameSpace;

class OptionConstants
{
  /**
   * Gender options
   */
   public static $GENDER = array(
    'Male',
    'Female'
   );

  /**
   * University year levels
   */
   public static $UNVERSITY_STANDING = array(
    '--None--',
    'First Year',
    'Second Year',
    'Third Year',
    'Fourth Year',
    'Graduate Student',
    'Graduated',
    'Other'
   );
}

如何在 symfony 2.2 twig 中访问 $UNVERSITY_STANDING 或 $GENDER?

4

3 回答 3

14

只需调用常量函数

{{ constant('Namespace\\Classname::CONSTANT_NAME') }}
于 2013-04-15T14:23:18.283 回答
9

您可以创建一个自定义的 Twig 函数,如下所示:

$staticFunc = new \Twig_SimpleFunction('static', function ($class, $property) {
        if (property_exists($class, $property)) {
            return $class::$$property;
        }
        return null;
    });

然后将其添加到 Twig

$twig->addFunction($staticFunc);

现在您可以从视图中调用此函数

{{ static('YourNameSpace\\ClassName', 'VARIABLE_NAME') }}
于 2013-09-20T00:49:33.177 回答
3

我对此类问题的解决方案是在 TwigExtention 中创建一个静态成员:

class TwigExtension extends \Twig_Extension
{
    private static $myStatic = 1;
    ...

在扩展中创建功能:

public function getStatic($something)
{
    self::$myStatic += 1;
    return self::$myStatic;
}

并在树枝上调用它:

{{"something"|getStatic}}

问候

于 2013-10-11T15:59:38.217 回答