Tipo di campo birthday

Un campo date specializzato nel gestire i compleanni.

Può essere reso come singola casella di testo, tre caselle di testo (mese, giorno e anno) oppure tre select.

Questo tipo essenzialmente è lo stesso di date, ma con valori predefiniti più appropriati per l’opzione years. L’opzione years ha come valore predefinito 120 anni nel passato.

Tipo di dato sottostante può essere DateTime, string, timestamp o array (vedere opzione input)
Reso come può essere tre select o 1 o 3 caselle di testo, in base all’opzione widget
Opzioni ridefinite
Opzioni ereditate

dal tipo date:

dal tipo form:

Tipo genitore date
Classe Symfony\Component\Form\Extension\Core\Type\BirthdayType

Opzioni ridefinite

years

tipo: array predefinito: 120 anni nel passato

Lista di anni disponibili nel campo anno. Questa opzione è rilevante solo quando l’opzione widget è impostata a choice.

Opzioni ereditate

Queste opzioni sono ereditate dal tipo date:

days

tipo: array predefinito: da 1 a 31

Lista di giorni disponibili per il tipo di campo day. Questa opzione è rilevante solo quando l’opzione widget è impostata a choice:

'days' => range(1, 31)

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,
));

format

tipo: intero o stringa predefinito: IntlDateFormatter::MEDIUM

Opzione passata alla classe IntlDateFormatter, usata per trasformare il dato inserito dall’utente nel formato appropriato. Questo è molto importante quando l’opzione widget è single_text e definisce il modo in cui il dato viene trasformato. Per impostazione predefinita, il formato è determinato in base al locale dell’utente; si può sovrascriverlo passando il formato come stringa.

Per maggiori informazioni sui formati validi, si veda sintassi del formato Date/Time. Per esempio, per rendere un singolo campo testuale, che si aspetta che l’utente inserisca yyyy-MM-dd, usare le seguenti opzioni:

$builder->add('date_created', 'date', array(
    'widget' => 'single_text',
    'format' => 'yyyy-MM-dd',
));

input

tipo: stringa predefinito: datetime

Il formato in ingresso dei dati, cioè il formato in cui la data è memorizzata nell’oggetto sottostante. Valori validi sono:

  • stringa (p.e. 2011-06-05)
  • datetime (un oggetto DateTime)
  • array (p.e. array('year' => 2011, 'month' => 06, 'day' => 05))
  • timestamp (p.e. 1307232000)

Anche il valore proveniente dal form sarà normalizzato in tale formato.

model_timezone

tipo: stringa predefinito: fuso orario di sistema

Fuso orario con cui vengono salvati i dati ricevuti. Deve essere uno dei fusi orari supportati da PHP

months

tipo: array predefinito: da 1 a 12

Lista di ore disponibili per il tipo di campo month. Questa opzione è rilevante solo se l’opzione widget è impostata a choice.

view_timezone

tipo: stringa predefinito: fuso orario di sistema

Fuso orario con cui i dati vanno mostrati all’utente (e quindi anche i dati che l’utente invia). Deve essere uno dei fusi orari supportati da PHP

widget

tipo: stringa predefinito: choice

Il modo di base in cui questo campo andrebbe reso. Può essere uno tra:

  • choice: rende tre campi select. L’ordine dei select è definito nell’opzione format.
  • text: rende tre campi testuali (mese, giorno, anno).
  • single_text: rende un singolo campo testuale. I dati inseriti dall’utente sono validati in base all’opzione format.

Attenzione

Se si usa timestamp, DateType è limitato a date tra il 13 dicembre 1901 20:45:54 GMT e il 19 gennaio 2038 03:14:07 GMT su sistemi a 32bit. Ciò è dovuto a un limite in PHP stesso.

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.

inherit_data

Nuovo nella versione 2.3: Questa opzione era nota come virtual prima di Symfony 2.3.

tipo: booleano predefinito: false

Questa opzione determina se il form erediterà dati dal form genitore. Può essere utile se si ha un insieme di campi duplicati in form multipli. Vedere Ridurre la duplicazione di codice con “inherit_data”.

invalid_message

tipo: stringa predefinito: This value is not valid

Questo è il messaggio di errore di validazione usato quando i dati inseriti sono determinati dalla validazione interna di un tipo di campo. Questo può accadere, per esempio, se l’utente inserire una stringa dentro un campo time che non può essere convertito in un tempo reale. Per i normali messaggi di validazione (come quando si imposta la lunghezza minima per un campo), impostare i messaggi di validazione con le proprie regole di validazione (riferimento).

invalid_message_parameters

tipo: array predefinito: array()

Impostando l’opzione invalid_message, si potrebbe aver bisogno di includere alcune variabili nella stringa. Lo si può fare aggiungendo dei segnaposto all’opzione e includendo le variabili in questa opzione:

$builder->add('un_campo', 'un_tipo', array(
    // ...
    'invalid_message'            => 'Valore inserito non valido: deve includere almeno %num% caratteri',
    'invalid_message_parameters' => array('%num%' => 6),
));

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.

Tabella dei contenuti

Argomento precedente

Tipo di campo time

Argomento successivo

Tipo di campo checkbox

Questa pagina