8

In Rails und CakePHP1.2 neigen Formen Eingabeelemente mit Namen wie die folgenden enthalten:Namen von HTML-Formularnamenskonventionen

<input name="comment[author]" /> 

Gibt es einen offiziellen Namen für die Notation in dem Attribut „name“ verwendet ?

Ebenso in CakePHP1.1 Ich glaube, dass das gleiche wie das ausgesehen haben würde:

<input name="comment/author" /> 

Auch hier gibt es einen formalen Namen für die Darstellung in dem „namen“ verwendet Attribut?

+0

Ich glaube nicht, dass es ursprünglich einen Namen hatte, als es in PHP entstand. Es wurde nur als Duplizierung des In-Sprache-Array-Dereferenzierungs-Formats "a [b]" gesehen.Seither wurde die PHP-Array-Dereferenzierung gemacht, um Anführungszeichen ('a ['b']') zu verlangen, weil es ansonsten so schrecklich zweideutig ist, aber das 'name'-Format wurde nicht aktualisiert. Einige andere Umgebungen haben PHP-Syntax übernommen, aber es gibt ebenso viele, die für Alternativen gegangen sind (z. B. "a.b"). – bobince

+0

Ich nenne es "Namespace", da es das Anfrage-> Daten-Array mit bestimmten Schlüsseln bildet. Es ist in diesem Fall eine Framework-spezifische Sache für CakePHP, dies auf diese Weise zu tun. Es macht also keinen Sinn, sie mit anderen zu vergleichen oder dies zu einer allgemeinen Frage irgendeiner Art zu machen. – mark

Antwort

1

in Kuchen php, das Namensschema ist in mehrdimensionalen Array-Access-Format, obwohl ich nicht wirklich sicher, was Sie das nennen würde. mehrdimensionale Array-Keying?

official php docs nennen es „eckige Klammer-Notation“

Im Grunde bin ich nicht sicher, dass CakePHP einen bestimmten Namen für diese hat ... Das ist, weil es einfach ist ‚Klammer-Notation‘ für Schlüssel Array-Zugriff.

Here's an example from the cakephp docs. Es veranschaulicht Benennungselemente mit Klammernotation in CakePHP und wie dies zum Vorfüllen von Werten verwendet wird.

Verwendung Kuchen php Formhelper wir ein hidden-ID-Feld zu erstellen:

echo $this->Form->hidden('id'): 

Das gibt die folgenden:

<!-- data comes from $this->request->data --> 
<input name="data[User][id]" id="UserId" type="hidden" /> 

Unter der Annahme, dass der von data[User][id] gehaltenen Wert ist 10, der Eingang mit einer ID von UserId wird einen Wert von 10 haben.

+0

Wenn Sie ein Zitat angeben können, gehört Ihnen das grüne Häkchen. –

4

In Rails wird dies als die Formen Mikroformat bezeichnet (zumindest von einigen). Viele verschiedene Frameworks scheinen auf diesem ersten Format zu standardisieren. Ich könnte mir vorstellen, dass CakePHP ihre Bibliotheken aktualisiert hat, um diesem Standard zu entsprechen. Es gibt an obsessively in-depth explanation verfügbar, das ist nur etwas Rails-spezifisch. Das Originalmikroformat stammt anscheinend von PHP.

0

In Rails wird der Zeichenfolgenwert, der dem name-Attribut in einem Formularelement zugewiesen ist, als Hash innerhalb des params[]-Hashs, indiziert mit Schlüssel, an einen Controller übergeben.

<input name="username"/> 

Wird in der Steuerung als params[:username] angezeigt.

<input name="user[name]"/> 

Wird in der Steuerung als params[:user][:name] angezeigt.

Und so weiter. Wenn Sie mehr darüber erfahren möchten, wie Sie diese generieren und was zu erwarten ist, lesen Sie die Dokumentation zu ActionView und ActionController.

Hier ist ein Link zu der ActionController overview, die eine gute Anleitung ist.

+0

Meine Frage geht nicht darum, wie die Namen interpretiert werden, es handelt sich um den Begriff, der verwendet wird, um diese Namenskonvention oder dieses Format zu beschreiben. –