セレクトボックスやチェックボックス、ラジオボタンを簡単に生成することができるChoiceタイプは非常に強力なフォームタイプです。

ただ添付画像のようにラジオボタンを生成したときにNoneという選択肢が自動で表示されることがあります。

ラジオボタンNone

このNoneの消し方は意外と知られていないのですが、フォームのempty_valueオプションを「false」に設定することで表示されなくなります。

FormBuilderのコードとしては次のようになります。

 

$builder->add('form_name', 'choice', array(
            'required' => false,
            'label' => false,
            'empty_value' => false,
            'expanded' => true,
            'multiple' => false,
            'choices' => array(
                1 => "選択肢1",
                2 => "選択肢2",
            ),
            'constraints' => array(
                new NotBlank(),
            ),
        ));

※empty_valueオプションはSymfony2.6で削除されました。よってEC-CUBEの次期バージョン3.n系ではサポートされませんのでまた別の手法が必要となるでしょう。