それらの送信後にフォームフィールドのラベルを変更するにはどうすればよいですか?
フォーム例
class TestType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('test', 'number')
->add($options['data']->getId() > 0 ? 'save' : 'add', 'submit')
;
}
public function finishView(FormView $view, FormInterface $form, array $options)
{
if($form->has('add'))
{
$form->remove('add');
$form->add('add', 'submit', array('label' => 'save'));
}
}
public function getName()
{
return '';
}
}
フォームは完全に「{{フォーム(フォーム)}}」で生成されます。FormType のみを使用します。data['id'] が 1 のように小さい場合は追加ボタンがあります。id が 0 の場合は保存ボタンがあります。
新しいフォームを最初に送信した後、エンティティが保存され、ページの読み込みが終了すると、「保存」フィールドではなく「追加」フィールドが表示されます。
完全なページを手動でリロードすると、保存ボタンが表示されます...