Symfony2,如何创建基于类常量的下拉菜单?

Symfony2,如何创建基于类常量的下拉菜单?,symfony,twig,Symfony,Twig,我有一个类有一些常量值,如下所示: class MyClass { const ACCESS_NONE = 0; const ACCESS_SUBMIT = 1; const ACCESS_VIEW = 2; const ACCESS_APPROVE = 3; } 如何使用Symfony2在我的小树枝文件中创建如下内容: <select name="someName"> <option value=

我有一个类有一些常量值,如下所示:

class MyClass
{
    const ACCESS_NONE = 0;

    const ACCESS_SUBMIT = 1;

    const ACCESS_VIEW = 2;

    const ACCESS_APPROVE = 3;
}
如何使用Symfony2在我的小树枝文件中创建如下内容:

        <select name="someName">
            <option value="ACCESS_NONE">None</option>
            <option value="ACCESS_VIEW">View</option>
            <option value="ACCESS_SUBMIT">Submit</option>
            <option value="ACCESS_APPROVE">Approve</option>
        </select>

没有一个
看法
提交
批准

您需要创建具有适当接口的类:

您始终可以手动创建数组,但如果希望在PHP中获得常量名称,唯一的方法是反射:


正如drupality所说,您可以编写这样的方法:

public static function getConstantsChoices()
{
    return array(
        self::ACCESS_NONE => 'None', //or 'ACCESS_NONE' => 'None' if you want the string
        self::ACCESS_VIEW => 'View',
        self::ACCESS_SUBMIT => 'Submit',
        self::ACCESS_APPROVE => 'Approve',
    );
}
如果您使用表单,您可以选择:

->add('name', 'choice', array(
      'choices' => MyClass::getConstantsChoices()
))