2016-06-01 4 views
2

Mit boolean Feldern der Zusammenfassung den Wert als 0 oder 1 Standardmäßig zeigt ...Universal-Boolean Formatierung in GridField

class MyDataObject extends DataObject { 

    private static $db = array(
     'Name'  => 'Varchar(255)', 
     'MyBoolean' => 'Boolean', 
    ); 

    public static $summary_fields = array (
     'Name', 
     'MyBoolean', 
    ); 
} 

... Ich weiß, wie man das Ja ändern oder Nein mit Gießen ...

class MyDataObject extends DataObject { 

    private static $db = array(
     'Name'  => 'Varchar(255)', 
     'MyBoolean' => 'Boolean', 
    ); 

    public static $casting = array (
     'MyBooleanText' => 'Text', 
    ); 

    public function MyBooleanText() { 
     return $this->MyBoolean ? 'Yes' : 'No'; 
    } 

    public static $summary_fields = array (
     'Name', 
     'MyBooleanText', 
    ); 
} 

... aber meine Frage ist, wie man jeden Wert standardmäßig ändert dies in den Summenzeilen zu zeigen, ohne für jedes Objekt Gießen einrichten zu müssen?

+0

Hinweis, in Silvers 3.1+ alle diese statischen Variablen sollten als 'private' deklariert werden. – 3dgoo

+0

Haben Sie versucht, etwas wie 'private statische $ Casting = Array ( 'MyBoolean' => 'Nizza', );' ?? – wmk

+0

Ich hatte das @wmk nicht ausprobiert, aber ich habe es jetzt und es hat sich nicht geändert, warum hat das für dich funktioniert? Ich meine, wenn das in eine Erweiterung für alle Datenobjekte gehen könnte, könnte es funktionieren ... – Barry

Antwort

1

In Ihrem sind $summary_fields Sie müssen nur auf die .Nice Methode zu Ihrem boolean.

Z. B:

class MyDataObject extends DataObject { 

    static $db = array(
     'Name'  => 'Varchar(255)', 
     'MyBoolean' => 'Boolean', 
    ); 

    public static $summary_fields = array (
     'Name' => 'Name', 
     'MyBoolean.Nice' => 'MyBoolean', 
    ); 
} 
+0

Ich habe seltsame Ergebnisse mit ... wo die Spalten verschwinden ... aber ich bin nicht in der Lage, auf einfache Weise zu reproduzieren . Aber mein Hauptproblem dabei ist, dass es es nicht generisch löst - ich muss immer noch manuell alle summary_fields aktualisieren – Barry

+0

Das ist genial. Ich schreibe Methoden wie im OP wie ein Trottel! –