2016-03-24 6 views
1

In meiner Admin Klasse, innerhalb configureFormFields Methode I Ankreuzfeld excerptImageSide haben:Wie wird das Rendering bestimmter Felder in SonataAdmin angepasst?

protected function configureFormFields(FormMapper $formMapper) 
{ 
    $formMapper 
     // ... 
     ->add('excerptImageSide') 
    ; 
} 

Jetzt im Admin erstellen/bearbeiten Seite Checkbox wie wiedergegeben wird:

enter image description here

Wie Sie Checkbox sehen ist unter Label, aber ich möchte es in einer Zeile haben. Also meine Frage ist, wie benutzerdefinierte Vorlage für bestimmte Feld-Rendering anwenden?

Antwort

1

Die einfachere Art und Weise ich weiß, ist das Feld in einem ->with(...) zu wickeln, die eine Klasse haben, und einige benutzerdefinierte CSS machen:

Admin

$formMapper 
    // ... 
    ->with('YourSection', array('class' => 'floating-checkboxes')) 
     ->add('excerptImageSide') 
    ->end() 
; 

CSS

.floating-checkboxes label{ 
    float: left;  // Make the label floating 
    min-width: 185px; // Keep a correct space between the field and its label 
} 

Um Ihr benutzerdefiniertes Stylesheet zu laden oder die Feldvorlage vollständig zu überschreiben Schauen Sie sich die advanced configuration documentation chapter an.

+0

Vielen Dank für die Antwort! Das ist wirklich funktionierende Lösung. Verstehe ich richtig, dass ich, um die ursprüngliche Vorlage des Formulars zu überschreiben, 'SonataAdminBundle: CRUD: base_edit.html.twig' erweitern muss? – Molarro

+0

Sie sollten diese Frage http://stackoverflow.com/questions/14194148/customize-form-field-rendering betrachten. Aber überschreiben Sie ein komplettes Feld für das Hinzufügen ein paar Zeilen von html/CSS scheint übertrieben für mich, es ist zu Ihrer eigenen Wertschätzung :). – chalasr