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

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

select タグの値が 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 に答える