2017-10-20 5 views
0

Sonata AdminにFormTypeを継承する方法は? SRC/AppBundle /フォーム/ CityType.phpで例えばSonata AdminにFormTypeを継承する方法は?

class SmsType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     ->add('name') 
     ->add('recommend', ChoiceType::class, array(
      'choices' => array(
       'Maybe' => 0, 
       'Yes' => 1, 
       'No' => 2, 
      ), 
     )) 
    } 
} 

のsrc/AppBundle /管理/ CityAdmin.php:

protected function configureFormFields(FormMapper $formMapper) 
{ 
    $formMapper 
     ->add('name') 
     ->name('recommend') 

} 

そして、私の管理フィールドには、テキスト入力されたお勧めします選択の代わりに。

私がすることができます:

protected function configureFormFields(FormMapper $formMapper) 
{ 
    $formMapper 
     ->add('name') 
     ->name('recommend', ChoiceType::class, array(
      'choices' => array(
       'Maybe' => 0, 
       'Yes' => 1, 
       'No' => 2, 
     ) 

} 

しかし、その後、2つの場所で、私は同じコードを持っています。

これをリファクタリングするにはどうすればよいですか?

答えて

0

この回答はドキュメントhttps://symfony.com/doc/current/form/inherit_data_option.htmlにあります。 FormMapperにFormTypeを追加し、inherit_dataオプションを設定するだけです。フィールドの名前は重要ではありません。

protected function configureFormFields(FormMapper $formMapper) 
{ 
    $formMapper 
     ->add('sms', SmsType::class, array(
      'inherit_data' => true, 
      'label' => false, 
     )) 

} 
関連する問題