Ich benutze CakePHP 1.2 und ich frage mich nur, ob es irgendwelche Seiteneffekte gibt, die $ this- & gt; -Daten an die Ansicht vom Controller zu übergeben.
Beispiel:
%Vor%anstelle von:
%Vor%Dadurch habe ich das $ this- & gt; set () vom Controller alle zusammen übersprungen. Verstößt dies gegen ein MVC-Muster oder irgendein Sicherheitsproblem, das ich übersehen habe? Ich habe gesehen, dass $ this- & gt; -Daten mit der Auth-Komponente das Array [_Token] enthalten.
Danke
Sie müssen sich der verschiedenen Orte bewusst sein, an denen Cake Helpers automatisch nach Daten suchen, da dies wirklich einen Unterschied macht. Der Formular-Assistent füllt Felder automatisch anhand des Inhalts von $this->data
aus. So bleiben Formulardaten bestehen, wenn die Validierung fehlschlägt. OTOH, ein Array <select>
elements options wird automatisch aus dem Namen des Pluralfelds,
übernommen
z.B. $form->select('Model.foo_id')
wird seine Optionen von $foos
übernehmen, falls gesetzt.
Daher hat $this->data
seinen besonderen Platz und sollte nicht leicht verwendet werden, genauso wie benannte Variablen ihre Verwendung haben und nicht ignoriert werden sollten. Verwenden Sie beide entsprechend. Wenn Sie den Inhalt von Form Helper nicht automatisch festlegen möchten, verwenden Sie set()
Ihre Variablen. IMHO ist es auch besser lesbar, einen Variablennamen zuzuweisen, der auf die enthaltenen Daten verweist. Alle Ihre Ansichten, die mit $this->data
arbeiten, sind weniger klar als eine Ansicht, die auf $foo
und eine weitere auf $bar
läuft.
$controller->data
ist für Daten gedacht, die von der View-Datei an das Steuerelement gesendet werden.
$view->data
ist für allgemeine Daten.
Ich würde es vermeiden, es zu tun, um gesund zu bleiben. Außerdem tippst du mehr in Sicht.
Es gibt keinen Grund, $ this- & gt; -Daten direkt festzulegen, außer wenn Sie mit Formularen arbeiten.
Warum brechen Konvention - Controller: Set ist da aus einem Grund. Wenn Sie Daten für Anzeige- oder Anzeigelogik an die Ansicht übergeben möchten, sollten Sie die angegebene Funktion verwenden, anstatt zu versuchen, Controller: -Daten für unbeabsichtigte Zwecke zu übernehmen.
Alles ist einfacher in CakePHP, wenn du die Regeln befolgst und die Dinge richtig und richtig machst.
In cakephp
version 2. * tritt ein Fehler auf, wenn Sie versuchen, Daten in $this->data
Tags und Links cakephp cakephp-1.2