Mein übergeordneter Formulartyp hat ein Feld "title" mit einem generischen Label "Title". Sagen wir, ich habe fünf untergeordnete Formulare und drei von ihnen müssen das Etikett ändern. Wie mache ich das. Ich werde verrückt.Elternformular-Label im untergeordneten Formular symfony überschreiben
class ParentType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('title', TextType::class, [
'label' => 'generics.title',
]);
}
}
class ChildType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
// I thought I could change the label of parent around here
// without removing and adding it again
$builder->add('description', TextareaType::class, [
'label' => 'generics.description',
]);
}
public function getParent()
{
return ParentType::class;
}
}
Ich möchte dies nicht im Zweig lösen.
Was ist mit dem Hinzufügen einer benutzerdefinierten titleLabel -Option in ParentType und Einstellung in der childs configureOptions() -Methode?
Wie lautet Ihr Formularcode? Wie rendern Sie es? Unter welchen Umständen entscheiden Sie, welches Etikett verwendet werden soll? Wo möchten Sie entscheiden, welches Label verwendet werden soll? Sie müssen genauer sein. Eigentlich sollten Sie genügend Code und Informationen hinzufügen, damit wir Ihre Situation reproduzieren können. –
Nicht ein Nudge sein, aber sollte es nicht sein: "Class ChildType erweitert ParentType", wenn Sie davon erben? Dann können Sie innerhalb Ihrer buildForm-Methode 'parent :: buildForm ($ builder, $ options);' . Wenn Sie die Elternklasse nicht direkt verwenden, können Sie der Kindklasse immer nur den 'Titel' hinzufügen. – pogeybait
Ist das nicht eine schlechte Methode, um direkt von ParentType zu erweitern? Ich dachte, ich sollte getParent() -Methode verwenden. @yceruto danke für den Code-Stil – uoji