2013-04-11 15 views
8

In Zend Framework 2.1.4 verwende ich die Standard-Formularansicht-Helfer, um meine Formularelemente zu rendern.Label vor der Eingabe mit Hilfe von formRow view helper in Zf2 anzeigen

Wenn ich versuche:

<?php echo $this->formRow($form->get('Title'));?> 

Der Beschriftungstext und Eingabeelement innerhalb des Etiketts platziert:

<label> 
<span>Title</span><input type="text" name="Title" placeholder="Inserisci titolo" 
required="required" value=""> 
</label> 

Das gleiche mit:

<?php echo $this->formCollection($form, TRUE); 

Allerdings, wenn ich machen aus dem Etikett und einzeln eingeben:

echo $this->formLabel($form->get('Title')); 
echo $this->formInput($form->get('Title')); 

Es erzeugt die HTML Ich möchte:

<label for="Title">Title</label> 
<input type="text" name="Title" placeholder="Insert Title" required="required" value=""> 

Wie kann ich das gleiche mit dem formRow View Helfer erreichen?

Antwort

7

Wenn ein Formularelement kein Attribut „id“ hat, wird wickeln das Etikett die Eingabe:

<label>Label<input /></label> 

Ansonsten:

<label for="test">Label</label><input id="test" /> 
+0

Bill, danke. Es ist schwierig, in einer Sprache zu sprechen, die jemals gelehrt wurde. –

-2

In zuerst müssen Sie den Quellcode schauen, um zu verstehen, wie formRow funktioniert: https://github.com/zendframework/zf2/blob/master/library/Zend/Form/View/Helper/FormRow.php

Nachdem Sie in diesem Code sehen werden, die __invoke $ Labelposition Parameter, die Sie mit konst LABEL_APPEND und LABEL_PREPEND prepend oder anhängen.

Kurz gesagt, versuchen, so etwas zu tun:

$this->formRorw($form->get('element'), 'prepend'); // Or append as you want 
+0

es wird nicht das Element außerhalb Etikett Tag werfen, es wird nur das Element vor Etikett Text oder nach Etikett Text, aber in allen Fällen: innerhalb der Etikett tag – khunshan

0

Mit Blick auf (ZF2 Version 2.25 dev):

\ Zend \ Formular \ View \ Helper \ FormRow

Es dass erscheint, wenn Sie tun nicht für Ihre Formularelemente eine ID liefern, ist das Standard allgemeine Verhalten das Eingangselement innerhalb zu platzieren ihre entsprechendes Labelelement.

Das zweite Argument für den Helper formRow View platziert den Beschriftungstext vor (vor) oder nach (anhängen) dem Eingabeelement im Dokumentfluss. (Der Standardwert ist, es vorher zu platzieren.)

Überprüfen Sie die Rendermethode für weitere Details.