Creative Commons License
This work is licensed under a
Creative Commons
Attribution-Share Alike 3.0
Unported License.

Master Symfony2 fundamentals

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
trainings.sensiolabs.com

Symfony hosting done right

ServerGrove, outstanding support at the right price for your Symfony hosting needs.
servergrove.com

Discover the SensioLabs Support

Access to the SensioLabs Competency Center for an exclusive and tailor-made support on Symfony
sensiolabs.com

Tipo di campo time

Tipo di campo time

Un campo per inserire un tempo.

Può essere reso come campo testuale, una serie di campi testuali (p.e. ora, minuto, secondo) o una serie di select. I dati sottostanti possono essere memorizzati come oggetto DateTime, stringa, timestamp o array.

Tipo di dato sottstante DateTime, stringa, timestamp o array (vedere opzione input)
Reso come può essere vari tag (vedere sotto)
Opzioni
Opzioni ereditate
Tipo genitore form
Classe TimeType

Utilizzo di base

Questo tipo di campo è altamente configurabile, ma facile da usare. Le opzioni più importanti sono input e widget.

Si supponga di avere un campo startTime, il cui datp sottostante sia un oggetto DateTime. Il codice seguente configura il tipo time per il campo come tre campi di scelta separati:

1
2
3
4
$builder->add('startTime', 'time', array(
    'input'  => 'datetime',
    'widget' => 'choice',
));

L'opzione input deve essere cambiata per corrispondere al tipo di dato sottostante. Per esempio, se il campo startTime fosse un timestamp, bisognerebbe impostare input a timestamp:

1
2
3
4
$builder->add('startTime', 'time', array(
    'input'  => 'timestamp',
    'widget' => 'choice',
));

Il campo supporta anche i valori array e string per l'opzione input.

Opzioni del campo

widget

tipo: stringa predefinito: choice

Il modo di base in cui il campo andrebbe reso. Può essere uno dei seguenti:

  • choice: rende due (o tre, se with_seconds è true) select.
  • text: rende due o tre input testuali (ora, minuto, secondo).
  • single_text: rende un singolo input testuale. Il valore inserito dall'utente sarà validato nella forma hh:mm (o hh:mm:ss, se si usano i secondi).

input

tipo: stringa predefinito: datetime

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

  • stringa (p.e. 12:17:26)
  • datetime (un oggetto DateTime)
  • array (p.e. array('hour' => 12, 'minute' => 17, 'second' => 26))
  • timestamp (p.e. 1307232000)

Il valore proveniente dal form sarà normalizzato nello stesso formato.

with_seconds

tipo: booleano predefinito: false

Se includere o meno i secondi nell'input. Se true, ci sarà un campo aggiuntivo per inserire i secondi.

hours

tipo: intero predefinito: da 1 a 23

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

minutes

tipo: intero predefinito: da 1 a 59

Lista di minuti disponibili per il tipo di campo minutes. Questa opzione è rilevante solo se l'opzione widget è impostata a choice.

seconds

tipo: intero predefinito: da 1 a 59

Lista di secondi disponibili per il tipo di campo seconds. Questa opzione è rilevante solo se l'opzione widget è impostata a choice.

data_timezone

tipo: stringa predefinito: fuso orario di sistema

Fuso orario in cui la data inserita è memorizzata. Deve essere uno dei fusi orari supportati da PHP

user_timezone

tipo: stringa predefinito: fuso orario di sistema

Fuso orario usato per mostrare la data all'utente (e quindi anche la data inviata dall'utente stesso). Deve essere uno dei fusi orari supportati da PHP.

Opzioni ereditate

These options inherit from the field type:

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:

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

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.

disabled

New in version 2.1: L'opzione disabled è stata aggiunta nella versione 2.1

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.