1

我有一个具有一些恒定值的类,如下所示:

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

2 回答 2

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()
))
于 2012-05-23T23:08:26.403 回答
1

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

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

接口 API

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

如何获取常量的名称?

于 2012-05-23T21:38:04.400 回答