2012-10-09 74 views
11

Tengo un formulario de edición, el formulario se realiza a través de los tipos de formulario symfony2. Revisé la documentación pero no pude encontrar ninguna opción para agregar CSS al formulario. El formulario muestra los datos correctamente y todo está bien, lo que quiero hacer es agregar estilo a cada campo.Agregar CSS al tipo de formulario es Symfony2

Mi Editar tipo es

public function buildForm(FormBuilder $builder, array $options) 
{ 
    $builder 
    ->add('id', 'hidden') 
    ->add('patent_name', 'text', array('label' => 'Patent Name')) 
    ->add('description', 'textarea', array('label' => 'Description', 'required' => false)) 
    ->add('appln_auth','text', array('label' => 'Application Authorization')) 
    ; 
} 

Alguien tiene alguna idea ho puedo añadir CSS?

Gracias

+0

Es cosa semánticamente mal para agregar material de presentación (estilos CSS , ...) a sus FormTypes (lógica). Entonces no hagas eso, incluso si eso es posible – Trix

Respuesta

15

Aquí es la forma en que puede hacerlo en la construcción de su formulario,

$builder->add('field_name', 'text', array('label' => 'Field Label', 'attr' => array('class' => 'fieldClass'))); 

También puede hacerlo cuando la prestación de sus campos de formulario , eche un vistazo a Twig template form function reference

{{ form_label(form.field, 'label', { 'attr': {'class': 'foo'} }) }} 
{{ form_widget(form.field, { 'attr': {'class': 'bar'} }) }} 

A continuación, puede añadir un archivo css en sus activos públicos bulto y lo haga en su plantilla usando,

{% block stylesheets %} 
    {% parent() %} {# if you want to keep base template's stylesheets #} 
    <link href="{{ asset('bundle/myBundle/css/stylesheet.css') }}" type="text/css" rel="stylesheet" /> 
{% endblock %} 

Tienes a continuación para hacer que sus activos públicos sean accesibles a través de su directorio web /. La mejor manera de hacerlo es crear enlaces simbólicos orientación de sus activos públicos de haces, tienes a continuación, para ejecutar

assets:install web/ --symlink 

Otro enfoque útil cuando se desea personalizar a fondo bloque de campo de formulario prestación específica (ramita) es define un nuevo form theme, aquí está la documentación>Form theming in Twig.

0

Esto podría ayudar:

$builder->add('patent_name', 'text', array('label' => 'Patent Name', 'attr' => array('class' => 'someclass'))); 
0

Si desea agregar la clase a sus campos, usted tiene que utilizar attr atributo especial con la acción de su forma de la estructura add de esa manera

$builder->add('field_name', 'yourType', array('attr' => array('class' => 'fieldClass'))); 

Si desea vincular la hoja de estilo en su lugar, usted tiene que usar activos.
Puede encontrar más información sobre los activos here

Para trabajar con los activos que tiene que hacer:

  • crear su archivo css
  • instalar sus activos con assets:install (Es mejor utilizar --symlink opción que se reflejar los cambios css a menos que estén en caché)
  • disfrute de su CSS utilizándolo en su plantilla. En caso de ramita, usted ha hacer para < link href="{{ asset('bundles/acmebundle/css/style.css') }}" type="text/css" rel="stylesheet"> (donde acmebundle es su paquete)
Cuestiones relacionadas