Symfony2,如何根据类常量创建下拉菜单?

时间:2012-05-23 20:48:49

标签: symfony twig

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

class MyClass
{
    const ACCESS_NONE = 0;

    const ACCESS_SUBMIT = 1;

    const ACCESS_VIEW = 2;

    const ACCESS_APPROVE = 3;
}

如何使用Symfony2在我的twig文件中创建类似下面的内容:

        <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>

2 个答案:

答案 0 :(得分:2)

正如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()
))

答案 1 :(得分:1)

您需要使用适当的界面创建类:

http://symfony.com/doc/current/reference/forms/types/choice.html#choice-list

Interface API

您总是可以手动创建数组,但如果您想在PHP中获取常量名称,唯一的方法是反射:

How to get name of the constant?