2017-10-20 16 views
0

Sonata Admin에서 FormType을 상속하는 방법은 무엇입니까?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 : SRC/AppBundle/양식/CityType.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, 
     ) 

} 

그러나 다음 두 곳에서 나도 같은 코드가 있습니다.

어떻게 리팩토링하는 것이 가장 좋은 방법입니까?

답변

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

}