El tipo locale es un subconjunto de ChoiceType que permite al usuario seleccionar entre una larga lista de regiones (idioma + país). Como bono adicional, los nombres regionales se muestran en el idioma del usuario.
El «valor» de cada región es o bien el del código de idioma ISO639-1 de dos letras (por ejemplo, «es»), o el código de idioma seguido de un guión bajo (_), luego el código de país ISO3166 (por ejemplo, «fr_FR» para Francés/Francia).
Nota
La configuración regional del usuario se deduce usando Locale::getDefault().
A diferencia del tipo choice, no es necesario especificar una opción choices o choice_list, ya que el tipo de campo utiliza automáticamente una larga lista de regiones. Puedes especificar cualquiera de estas opciones manualmente, pero entonces sólo debes utilizar el tipo choice directamente.
Rendered as | can be various tags (see Etiqueta select, casillas de verificación o botones de radio) |
Inherited options | |
Parent type | choice |
Class | Symfony\Component\Form\Extension\Core\Type\LanguageType |
Estas opciones las hereda del tipo choice:
tipo: Boolean predeterminado: false
Si es true, el usuario podrá seleccionar varias opciones (en contraposición a elegir sólo una opción). Dependiendo del valor de la opción expanded, esto reproducirá una etiqueta de selección o casillas de verificación si es true y una etiqueta de selección o botones de radio si es false. El valor devuelto será un arreglo.
tipo: Boolean predeterminado: false
Si es true, los botones de radio o casillas de verificación se reproducirán (en función del valor de multiple). Si es false, se reproducirá un elemento de selección.
tipo: array predeterminado: array()
Si se especifica esta opción, entonces un subconjunto de todas las opciones se trasladará a la parte superior del menú de selección. Lo siguiente debe mover la opción «Baz» a la parte superior, con una separación visual entre esta y el resto de las opciones:
$builder->add('foo_choices', 'choice', array(
'choices' => array('foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'),
'preferred_choices' => array('baz'),
));
Ten en cuenta que las opciones preferidas sólo son útiles cuando se reproducen como un elemento select (es decir, expanded es false). Las opciones preferidas y las opciones normales están separadas visualmente por un conjunto de líneas punteadas (es decir, -------------------). Esto se puede personalizar cuando reproduzcas el campo:
{{ form_widget(form.foo_choices, { 'separator': '=====' }) }}
<?php echo $view['form']->widget($form['foo_choices'], array('separator' => '=====')) ?>
tipo: string o Boolean
Esta opción determina si o no una opción empty especial (por ejemplo, «Elige una opción») aparecerá en la parte superior de un elemento gráfico de selección. Esta opción sólo se aplica si ambas opciones expanded y multiple se establecen en false.
Añade un valor vacío con «Elige una opción», como el texto:
$builder->add('states', 'choice', array(
'empty_value' => 'Choose an option',
));
Garantiza que ninguna opción con valor empty se muestre:
$builder->add('states', 'choice', array(
'empty_value' => false,
));
Si dejas sin establecer la opción empty_value, entonces automáticamente se añadirá una opción con espacio en blanco (sin texto) si y sólo si la opción required es false:
// añadirá una opción de espacio en blanco (sin texto)
$builder->add('states', 'choice', array(
'required' => false,
));
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.
Estas opciones las hereda del tipo field:
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.
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') }}
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.
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.