Tipo di campo currency

Il tipo currency è un sottoinsieme del campo choice che permette all’utente di selezionare da una grande lista di valute ISO 4217 a 3 lettere.

A differenza del tipo choice, non c’è bisogno di specificare le opzioni choices o choice_list dato che il campo usa automaticamente una grande lista di valute. È possibile anche specificare queste opzioni manualmente, ma in questo caso si dovrebbe usare il tipo choice direttamente.

Reso come possono essere vari tag (vedi Tag select, checkbox o bottoni radio)
Opzioni Sovrascritte
Opzioni ereditate

dal tipo choice

dal tipo form

Tipo genitore choice
Classe Symfony\Component\Form\Extension\Core\Type\CurrencyType

Opzioni ridefinite

choices

default: Symfony\Component\Intl\Intl::getCurrencyBundle()->getCurrencyNames()

L’opzione choices è impostata in modo predefinito a tutte le valute.

Opzioni ereditate

Queste opzioni sono ereditate dal tipo choice:

placeholder

Nuovo nella versione 2.6: L’opzione placeholder è stata introdotta in Symfony 2.6, al posto di empty_value, che è disponibile per le versioni precedenti.

Nuovo nella versione 2.3: Da Symfony 2.3, si possono usare valori vuoti anche se l’opzione expanded è impostata a true.

tipo: stringa o booleano

Questa opzione determina se apparirà o meno una speciale opzione vuota (p.e. “Scegliere un’opzione”) in cima al select. Questa opzione si applica solamente se entrambe le opzioni expanded e multiple sono impostate a false.

  • Aggiungere un valore vuoto con “Scegliere un’opzione” come testo:

    $builder->add('states', 'choice', array(
        'placeholder' => 'Scegliere un\'opzione',
    ));
    
  • Non mostrare alcun valore vuoto:

    $builder->add('states', 'choice', array(
        'placeholder' => false,
    ));
    

Se non si imposta l’opzione placeholder, sarà aggiunta automaticamente un’opzione vuota (senza testo), ma solo se l’opzione required è false:

// sarà aggiunta un'opzione vuota (senza testo)
$builder->add('states', 'choice', array(
    'required' => false,
));

error_bubbling

tipo: booleano predefinito: false

Se true, qualsiasi errore per questo campo sarà passato al campo genitore o al form. Per esempio, se impostato a true su un campo normale, qualsiasi errore per il campo sarà collegato al form principale, non al campo stesso.

expanded

tipo: booleano predefinito: false

Se true, saranno resi dei bottoni radio o dei checkbox (a seconda del valore di multiple). Se false, sarà reso un elemento select.

multiple

tipo: booleano predefinito: false

Se true, l’utente potra selezionare più opzioni (invece di sceglierne una sola). A seconda del valore dell’opzione expanded, sarà reso o come un tag select o come dei checkbox, se true, e come un tag select o bottoni radio, se false. Il valore restituito sarà un array.

preferred_choices

tipo: array predefinito: array()

Se questa opzione viene specificata, un sotto-insieme di tutte le opzioni sarà spostato in cima al select. Il codice seguente sposterà l’opzione “Paperino” in cima, con un separatore visuale tra essa e le opzioni restanti:

$builder->add('scelte_pippo', 'choice', array(
    'choices' => array('pippo' => 'Pippo', 'pluto' => 'Pluto', 'paperino' => 'Paperino'),
    'preferred_choices' => array('paperino'),
));

Si noti che le scelte preferite hanno senso solo con la resa di un elemento select (cioè se expanded è false). Le scelte preferite e le scelte normali sono separate visivamente da una serie di righe (-------------------). Il separatore può essere personalizzato durante la resa:

  • Twig
    {{ form_widget(form.scelte_pippo, { 'separator': '=====' }) }}
    
  • PHP
    <?php echo $view['form']->widget($form['scelte_pippo'], array('separator' => '=====')) ?>
    

Queste opzioni sono ereditate dal tipo form:

data

tipo: mixed predefinito: Predefinito al campo dell’oggetto sottostante (se presente)

Quando si crea un form, ogni campo inizialmente mostra il valore della proprietà corrispondente dell’oggetto del dominio del form (se un oggetto è legato al form). Se si vuole sovrascrivere il valore iniziale per il form o solo per un singolo campo, lo si può fare con l’opzione data:

$builder->add('token', 'hidden', array(
    'data' => 'abcdef',
));

disabled

type: booleano default: false

Se non si vuole che l’utente modifichi il valore di un campo, si può impostare questa opzione a true. Ogni valore inserito sarà ignorato.

empty_data

tipo: mixed

Il valore predefinito effettivo di questa opzione dipende da altre opzioni:

  • Se multiple è false ed expanded è false, allora '' (stringa vuota);
  • Altrimenti array() (array vuoto).

Questa opzione determina il valore restituito dal campo quando viene selezionato placeholder.

Si può personalizzare a seconda delle esigenze. Per esempio, se si vuole che il campo gender sia impostato a null quando non viene scelto alcun valore, lo si può fare in questo modo:

$builder->add('gender', 'choice', array(
    'choices' => array(
        'm' => 'Maschio',
        'f' => 'Femmina'
    ),
    'required'    => false,
    'placeholder' => 'Scegliere un genere',
    'empty_data'  => null
));

Nota

Se si vuole impostare l’opzione empty_data per l’intera classe del form, vedere la ricetta Configurare dati vuoti per una classe Form.

label

tipo: stringa predefinito: “indovinato” dal nome del campo

Imposta la label usata per la resa del campo. La label può anche essere inserita direttamente all’interno del template:

{{ form_label(form.name, 'Il tuo nome') }}

label_attr

tipo: array predefinito: array()

Imposta gli attributi HTML per l’elemento <label>, che saranno usati durante la resa della label di un campo. È un array associativo con gli attributi HTML come chiavi. Questi attributi possono anche essere impostati all’interno del template:

  • Twig
    {{ form_label(form.name, 'Nome', {'label_attr': {'class': 'CUSTOM_LABEL_CLASS'}}) }}
    
  • PHP
    echo $view['form']->label(
        $form['name'],
        'Nome',
        array('class', 'CUSTOM_LABEL_CLASS')
    );
    

mapped

tipo: booleano

Se si vuole che il campo sia ignorato durante la lettura o la scrittura dell’oggetto, si può impostare l’opzione mapped a false

read_only

tipo: booleano predefinito: false

Se questa opzione è true, il campo sarà reso con l’attributo disabled, in modo che il campo non sia modificabile.

required

tipo: booleano predefinito: true

Se true, sarà reso un attributo required HTML5. La label corrispondente sarà anche resa con una classe required.

L’attributo è indipendente dalla validazione del form. Nel caso migliore, se si lascia che Symfony indovini il tipo di campo, il valore di questa opzione sarà indovinato dalle informazioni di validazione.

Tabella dei contenuti

Argomento precedente

Tipo di campo timezone

Argomento successivo

Tipo di campo date

Questa pagina