2012-10-09 51 views
11

我有一個編輯表單,表單是通過symfony2表單類型創建的。我檢查了文檔,但找不到添加CSS到表單的任何選項。表單顯示正確的數據,一切都很好,我想要做的是將樣式添加到每個字段。添加CSS到表單類型是Symfony2

我的編輯類型是

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')) 
    ; 
} 

任何人有任何想法浩,我可以添加CSS?

感謝

+0

這是語義錯誤的東西添加呈現的東西(CSS樣式,...)到你的FormTypes(邏輯)。所以即使這是可能的,也不要這樣做 – Trix

回答

15

這是構建表單時,你可以做到這一點,

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

你也可以做到這一點渲染表單字段時,看看Twig template form function reference

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

然後,您可以在您的捆綁公共資產增加一個CSS文件,並使用調用它在你的模板,

{% 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 %} 

您已經然後讓你的公共資產是通過你的web /目錄訪問。 做到這一點,最好的方法是創建符號鏈接的目標捆綁公共資產,你那麼當你想徹底定製特定形式的場渲染塊來執行

assets:install web/ --symlink 

另一種有用的方法(小枝)是定義新的form theme,這裏是文檔>Form theming in Twig

0

這可能幫助:

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

如果你想添加類的領域,你如果你希望你的樣式表,而不是鏈接以這種方式

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

使用attr特殊屬性,與您的構建形式的add行動,你必須使用資產。
你可以找到更多的資產here

要與資產工作,你需要做的:

  • 創建CSS文件
  • assets:install安裝您的資產(我建議使用--symlink選項會反映css的變化,除非它們被緩存)
  • 通過在你的模板中使用它來享受你的CSS。在樹枝的情況下,你已經做< link href="{{ asset('bundles/acmebundle/css/style.css') }}" type="text/css" rel="stylesheet">(其中acmebundle是你的包)
相關問題