Tipo de campo percent

El tipo de campo percent reproduce un campo de entrada de texto, especializado en el manejo de datos porcentuales. Si los datos porcentuales se almacenan como un decimal (por ejemplo, 0.95), puedes utilizar este campo fuera de la caja. Si almacenas tus datos como un número (por ejemplo, 95), debes establecer la opción type a integer.

Este campo añade un signo de porcentaje «%» después del cuadro de entrada.

Rendered as input text field
Options
Inherited options
Parent type field
Class Symfony\Component\Form\Extension\Core\Type\PercentType

Opciones

type

tipo: string predefinido: fractional

Esto controla la forma en que se almacenan tus datos en el objeto. Por ejemplo, en el objeto puedes almacenar un porcentaje correspondiente al «55%» como 0.55 o 55. Los dos «tipos» manejan estos dos casos:

  • fractional Si los datos se almacenan como un decimal (por ejemplo, 0.55), usa este tipo. Los datos se multiplicarán por 100 antes de mostrarlos al usuario (por ejemplo, 55). Los datos presentados se dividirán por 100 al presentar el formulario para almacenar el valor decimal (0.55);
  • integer Si almacenas tus datos como un entero (por ejemplo, 55), entonces, utiliza esta opción. El valor crudo (55) se muestra al usuario y se almacena en tu objeto. Ten en cuenta que esto sólo funciona para valores enteros.

precision

tipo: integer predeterminado: 0

De manera predeterminada, los números ingresados se redondean. Para tomar en cuenta más cifras decimales, utiliza esta opción.

Opciones heredadas

Estas opciones las hereda del tipo field:

required

tipo: Boolean predeterminado: true

Si es true, reproducirá un atributo required de HTML5. La label correspondiente será reproducida con una clase required.

Esto es superficial e independiente de la validación. A lo sumo, si dejas que Symfony deduzca el tipo de campo, entonces el valor de esta opción, se puede inferir a partir de tu información de validación.

label

tipo: string predefinido: La etiqueta se «deduce» a partir del nombre del campo

Establece la etiqueta que se utilizará al reproducir el campo. La etiqueta también se puede fijar directamente dentro de la plantilla:

{{ form_label(form.name, 'Tu nombre') }}

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.

error_bubbling

tipo: Boolean predeterminado: false

Si es true, los errores de este campo serán pasados al campo padre o al formulario. Por ejemplo, si estableces en true un campo normal, cualquier error de ese campo se adjuntará al formulario principal, no al campo específico.

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),
));
Bifúrcame en GitHub