2011-01-12 6 views
1

Ich habe die Aufgabe "doctrine: generate-admin" verwendet. Alles funktioniert, aber ich möchte die generator.yml-Datei verwenden, um einige Formularfelder dort zu deaktivieren, anstatt sie in der Form-Klasse selbst aufheben zu müssen. Dinge wie "updated_at" muss ich immer nur speichern, wenn das Objekt aktualisiert wird, aber ich möchte nicht, dass sie auf irgendwelchen Formularen angezeigt werden, und deshalb werde ich keine Formularüberprüfungsfehler bekommen.symfony 1.4 Admin-Generator nicht gesetzt Felder

Ist das möglich? Ich kann nichts auf der Referenzseite für den Generator finden, die mich dies tun lassen würde, scheint die Felder Konfiguration nur die Beschriftung/Anmeldeinformationen etc. zu ändern.

Antwort

7

Sie müssen einfach die Felder auswählen, die Sie anzeigen möchten:

config: 
    form: 
    display: 
     Content: [title, body, author] 
     Admin: [is_published, expires_at] 

Es ist seltsam, Sie haben es nicht auf der Referenzseite gefunden. Hier gehts: http://www.symfony-project.org/reference/1_4/en/06-Admin-Generator (gehe zu Formular -> Anzeige).

Edit:

Admin-Generator verwendet sfModelGeneratorConfiguration :: getFormFields() -Methode Liste der Felder abrufen zu machen. Es dauert nur alle Felder, wenn Sie die Option 'Anzeige' nicht angeben.

Sind alle Felder gerendert oder nur einige davon? Wenn es später ist, haben Sie möglicherweise etwas in Ihrem Formular überladen (zum Beispiel configure() -Methode).

1

Neben den Feldern in config/generator.yml des Admin-Modul aus seinem Versteck, wie oben erwähnt, können Sie sie in der entsprechenden Form unset sollte. Wenn Sie also das created_at und updated_at Felder eines Timestampable Modell ausblenden möchten, ändern Sie die configure() -Methode in lib/Form/Lehre/ModelForm.class.php zu

public function configure() 
{ 
    unset($this['created_at'],$this['updated_at']); 
} 
+0

$ ist dies kein Array in Objektkontext . –

+0

Wir können Verweise auf $ this als ein Array in allen Symfony 1.x-Dokumenten finden, insbesondere in Bezug auf Formulare. – Webler

+0

Ich bekomme "PHP Fatal Fehler: Kann nicht Objekt des Typs xxx als Array verwenden" wenn Sie $ this als ein Array verwenden. Können Sie Code teilen, der ausgeführt wird? –

Verwandte Themen