2012-10-18 3 views
16

voglio qualcosa di simile:Symfony2 Personalizzazione modulo

<textarea rows="30" cols="70" class="TextBox" style="height:100px;"> 

ma dentro la mia Symfony2 aplication e non nel modello ramoscello ho provato questo:

 $builder->add('history', 'textarea', array('label' => 'Nome' , 'max_length' => 1048576 , 'rows' = 30 , 'cols' = 70)); 

ma ottengo "file" e " cols" non sono opzioni ...

nel ramoscello voglio qualcosa di simile:

<label for="history">{{'form_anamnese_history'}}</label> 
{{ form_widget(form.history) }} 

per essere una casella di testo post-forum!

+0

Gli elementi di dimensionamento sono fatti meglio nel tuo css. – Maerlyn

risposta

47

Utilizzare la matrice attr, come spiegato nel documentation:

$builder->add('history', 'textarea', array(
    'attr' => array('cols' => '5', 'rows' => '5'), 
)); 
3

È possibile impostare la visualizzazione attributi per textarea in Twig piuttosto che nella forma:

{{ form_widget(edit_form.comment, { 'attr': { 
    'style' : 'width:525px', 
    'rows' : '4', 
    'cols' : '30' }}) }} 

Come accennato in precedenza, è una pratica migliore per impostare questo in CSS, se possibile, tuttavia.

+1

Nella mia esperienza è preferibile utilizzare righe e colonne, poiché corrisponde automaticamente all'altezza della linea. – Adam

+0

La definizione di 'rows' e' cols' in twig view non funziona su symfony 2.8. Funziona solo durante la costruzione della forma come @juan puntato. – vbsessa

+0

Direi che questa è la migliore risposta perché le dimensioni fisiche di un widget di un modulo dovrebbero essere una questione di particolare modello di ramoscello, e non della classe del tipo di modulo stesso. –