다음 양식 유형이 주어지면 제출하기 전에 두 번째 필드를 어떻게 렌더링 할 수 있습니까? 나는 $form->remove
와 시도했지만 난 항상이 오류를 얻을 것이다 :Symfony pre_submit 필드 순서 변경
Warning: Illegal offset type in isset or empty
하지 않음이 하나를 해결하는 방법을 정말 확실합니다.
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('survey', EntityType::class, [
'class' => SurveyManager::class,
'attr' => [
'class' => 'field-change',
],
])
->add('submit', SubmitType::class, [
])
->addEventListener(
FormEvents::PRE_SUBMIT,
function (FormEvent $event) {
$form = $event->getForm();
$data = $event->getData();
$modifier = $data['survey'];
$form->add('headquarter', EntityType::class, [
'class' => HeadQuarterManager::class,
'query_builder' => function (HeadQuarterManagerRepository $er) use ($modifier) {
return $er->getHeadquarter($modifier);
},
]);
}
);
}
'제출하기 전에 렌더링'이란 무엇을 의미합니까? 그 트릭을해야 자바 스크립트인가요? 그렇다면 처음에는 버튼을 숨긴 클래스 (예 :'숨김 ')를 추가하고 jQuery가 제출하기 전에이를 표시하도록합니다. – Rvanlaak