EDIT: soweit ich array('attr' => array('myattr1' => 'value1'))
als Option vorbei für den Bauherrn verstehen kann als gemeinsames Attribut für den Bauherrn bestimmt ist und alle seine untergeordneten Elemente . Dies ist der Grund, warum zum Beispiel die Übergabe der array('required' => false)
Formularebene die HTML5-integrierte clientseitige Validierung für jedes Feld innerhalb dieses Formulars deaktiviert.
(Immer auf der Suche nach einer besseren Lösung) ich meinen Weg durch diese blog post inspiriert veröffentlichen werde,: ein benutzerdefinierte Formularfeld mit Ansicht und einen Zweig Block erstellen neue Attribute Attribute.
class TypeheadType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->setAttribute('mode', $options['mode'])
->setAttribute('items', $options['items']);
}
public function buildView(FormView $view, FormInterface $form)
{
$view
->set('mode', $form->getAttribute('mode'))
->set('items', $form->getAttribute('items'));
}
public function getDefaultOptions(array $options)
{
return array(
'mode' => 'single',
'items' => 10
);
}
public function getName() { return 'typehead'; }
public function getParent(array $options) { return 'field'; }
}
Der neue Formulartyp als Dienst registrieren werden sollte und Alias übereinstimmen, was durch getName()
zurückgegeben wird (das ist obligatorisch? Keine Ahnung ...):
form.type.typehead:
class: Acme\HelloBundle\Form\Type\TypeheadType
tags:
- { name: form.type, alias: typehead }
Neue Felderstellung (anderswo):
$builder->add('myfield', 'typehead', array('items' => 15));
In Zweig Form Thema Widget Block (Muster für Name ist as getName() . '_widget
) Sie Ansichtsattribute setted in TypeheadType
verwenden können:
{% block typehead_widget %}
{% spaceless %}
<input type="text" {{ block('widget_attributes') }}
{% if value is not empty %}value="{{ value }}" {% endif %}
data-items="{{ items }}" data-mode="{{ mode }}" />
{% endspaceless %}
{% endblock typehead_widget %}
Und schließlich:
{{ form_row(form.myfield) }}
Nur zur Bestätigung sagen Sie, dass Ihre Label-HTML-Entität beim Rendern mit einem Datenquellenattribut endet? Wenn ja, dann kann ich dabei helfen. Wenn es etwas anderes ist, dann vielleicht auch nicht. – Cerad
@Cerad ja, Label hat genau die gleichen Attribute wie das Widget. – gremo