Tipo de campo time

Un campo para capturar entradas horarias.

Este se puede reproducir como un campo de texto, una serie de campos de texto (por ejemplo, horas, minutos, segundos) o una serie de campos de selección. Los datos subyacentes se pueden almacenar como un objeto DateTime, una cadena, una marca de tiempo (timestamp) o un arreglo.

Underlying Data Type can be DateTime, string, timestamp, or array (see the input option)
Rendered as can be various tags (see below)
Options
Inherited options
Parent type form
Class Symfony\Component\Form\Extension\Core\Type\TimeType

Uso básico

Este tipo de campo es altamente configurable, pero fácil de usar. Las opciones más importantes son input y widget.

Supongamos que tienes un campo startTime cuyo dato de hora subyacente es un objeto DateTime. Lo siguiente configura el tipo time para ese campo como tres campos de opciones diferentes:

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

La opción input se debe cambiar para que coincida con el tipo de dato de la fecha subyacente. Por ejemplo, si los datos del campo startTime fueran una marca de tiempo Unix, habría necesidad de establecer la entrada a timestamp:

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

El campo también es compatible con array y string como valores válidos de la opción input.

Opciones del campo

widget

tipo: string predefinido: choice

La forma básica en que se debe reproducir este campo. Puede ser una de las siguientes:

  • choice: pinta dos (o tres si with_seconds es true) cuadros de selección.
  • text: pinta dos o tres cuadros de texto (horas, minutos, segundos).
  • single_text: pinta un sólo campo de entrada de tipo text. La entrada del usuario se validará contra la forma hh:mm (o hh:mm:ss si se utilizan segundos).

input

tipo: string predefinido: datetime

El formato del dato input —es decir, el formato de la fecha en que se almacena en el objeto subyacente. Los valores válidos son los siguientes:

  • string (por ejemplo 12:17:26)
  • datetime (un objeto DateTime)
  • array (por ejemplo array('hour' => 12, 'minute' => 17, 'second' => 26))
  • timestamp (por ejemplo 1307232000)

El valor devuelto por el formulario también se normaliza de nuevo a este formato.

with_seconds

tipo: Boolean predeterminado: false

Si debe o no incluir los segundos en la entrada. Esto resultará en una entrada adicional para capturar los segundos.

hours

tipo: integer predeterminado: 0 a 23

Lista de las horas disponibles para el tipo de campo hours. Esta opción sólo es relevante cuando la opción widget está establecida en choice.

minutes

tipo: integer predeterminado: 0 a 59

Lista de los minutos disponibles para el tipo de campo minutes. Esta opción sólo es relevante cuando la opción widget está establecida en choice.

seconds

tipo: integer predeterminado: 0 a 59

Lista de los segundos disponibles para el tipo de campo segundos. Esta opción sólo es relevante cuando la opción widget está establecida en choice.

data_timezone

tipo: string predefinido: la zona horaria del sistema

La zona horaria en que se almacenan los datos entrantes. Esta debe ser una de las zonas horarias compatibles con PHP

user_timezone

tipo: string predefinido: la zona horaria del sistema

La zona horaria para mostrar los datos al usuario (y por lo tanto también los datos que el usuario envía). Esta debe ser una de las zonas horarias compatibles con PHP

Opciones heredadas

Estas opciones las hereda del tipo field:

invalid_message

tipo: string predefinido: This value is not valid (Este valor no es válido)

Este es el mensaje para el error de validación utilizado cuando se determina que los datos ingresados en este campo no tienen sentido (es decir, falla la validación).

Esto puede ocurrir, por ejemplo, si el usuario introduce una cadena sin sentido en el campo time que no se puede convertir a una hora real o si el usuario introduce una cadena (por ejemplo, manzana) en un campo de número.

La validación (con la lógica del negocio) normal (por ejemplo, al establecer una longitud mínima en un campo) la debes establecer usando mensajes de validación con tus reglas de validación (referencia).

invalid_message_parameters

tipo: array predeterminado: array()

Al establecer la opción invalid_message, posiblemente sea necesario que incluyas algunas variables en la cadena. Esto se puede lograr agregando marcadores de posición y variables en esa opción:

$builder->add('some_field', 'some_type', array(
    // ...
    'invalid_message'            => 'You entered an invalid value - it should include %num% letters',
    'invalid_message_parameters' => array('%num%' => 6),
));

read_only

Nuevo en la versión 2.1: The read_only option was changed in 2.1 to render as a readonly HTML attribute. Previously, it rendered as a disabled attribute. Use the disabled option if you need the old behavior.

tipo: Boolean predeterminado: false

If this option is true, the field will be rendered with the readonly attribute so that the field is not editable.

disabled

Nuevo en la versión 2.1: The disabled option is new in version 2.1

type: boolean default: false

Si no deseas que un usuario pueda modificar el valor de un campo, puedes establecer la opción disabled en true. Cualquier valor recibido será omitido.

These options inherit from the date type:

virtual

tipo: boolean default: false

This option determines if the form will be mapped with data. This can be useful if you need a form to structure the view. See Cómo usar la opción virtual en los campos de formulario.

Bifúrcame en GitHub