/** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('title', 'text', ['label' => 'タイトル', 'required' => false])->add('status', 'choice', ['choices' => TodoStatus::getNames(), 'label' => 'ステータス', 'required' => false, 'empty_value' => '選択してください']); // ステータスオブジェクトの変換 $builder->get('status')->addModelTransformer(new CallbackTransformer(function ($output) { if ($output instanceof TodoStatus) { return $output->getValue(); } }, function ($input) { if (!empty($input)) { return new TodoStatus($input); } })); }