1

我正在尝试使用表单类型和“choice_list”为选择选项设置自定义值。

类型:

   ->add('status', 'choice', array(
      'constraints' => array(
       new Assert\NotBlank(array('message' => 'Required field missing: status'))
      ),
      'error_bubbling' => true,
      'choice_list' => new StatusChoiceList()

状态选择列表文件:

class StatusChoiceList extends LazyChoiceList
{
    /**
     * Loads the choice list
     *
     * Should be implemented by child classes.
     *
     * @return ChoiceListInterface The loaded choice list
     */
    protected function loadChoiceList()
    {
        $array = array(
            'Preview' => 'Preview',
            'Hidden'  => 'Hidden',
            'Live'    => 'Live'
        );
        $choices = new ChoiceList($array, $array);

        return $choices;
    }
}

选择标签有一个错误的值 0,1,2 和一个好的标签

4

1 回答 1

3

ChoiceList类用于选择任意数据类型。在您的情况下,您应该改用SimpleChoiceList。第一个参数是一个数组,其中选择作为键,标签作为值。

protected function loadChoiceList()
{
    $array = array(
        'Preview' => 'Preview',
        'Hidden'  => 'Hidden',
        'Live'    => 'Live'
    );
    $choices = new SimpleChoiceList($array);

    return $choices;
}
于 2013-02-28T20:15:00.633 回答