Flo*_*cel 9 static twig symfony-2.2
我有一个包含数组形式的常量选项的类:
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'
);
}
Run Code Online (Sandbox Code Playgroud)
如何在symfony 2.2 twig中访问$ UNVERSITY_STANDING或$ GENDER?
Mar*_*nte 12
{{ constant('Namespace\\Classname::CONSTANT_NAME') }}
Run Code Online (Sandbox Code Playgroud)
小智 8
您可以创建自定义Twig函数,如下所示:
$staticFunc = new \Twig_SimpleFunction('static', function ($class, $property) {
if (property_exists($class, $property)) {
return $class::$$property;
}
return null;
});
Run Code Online (Sandbox Code Playgroud)
然后将其添加到Twig中
$twig->addFunction($staticFunc);
Run Code Online (Sandbox Code Playgroud)
现在您可以从视图中调用此函数
{{ static('YourNameSpace\\ClassName', 'VARIABLE_NAME') }}
Run Code Online (Sandbox Code Playgroud)
我对此类问题的解决方案是在 TwigExtention 中创建一个静态成员:
class TwigExtension extends \Twig_Extension
{
private static $myStatic = 1;
...
Run Code Online (Sandbox Code Playgroud)
在扩展中创建一个函数:
public function getStatic($something)
{
self::$myStatic += 1;
return self::$myStatic;
}
Run Code Online (Sandbox Code Playgroud)
并在树枝中调用它:
{{"something"|getStatic}}
Run Code Online (Sandbox Code Playgroud)
问候
| 归档时间: |
|
| 查看次数: |
9819 次 |
| 最近记录: |