2012-10-09 29 views
11

Tôi có một mẫu chỉnh sửa, Biểu mẫu được thực hiện thông qua các loại biểu mẫu của symfony2. Tôi đã kiểm tra tài liệu nhưng không thể tìm thấy bất kỳ tùy chọn nào để thêm CSS vào biểu mẫu. Biểu mẫu hiển thị dữ liệu chính xác và mọi thứ đều ổn mà tôi muốn làm là thêm kiểu dáng cho từng trường.Thêm CSS vào Loại Biểu mẫu là Symfony2

My Sửa Type là

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

Bất cứ ai có bất kỳ ý tưởng ho tôi có thể thêm css?

Cảm ơn

+0

Đó là điều ngữ nghĩa sai để thêm công cụ trình bày (phong cách CSS , ...) vào FormTypes (logic) của bạn. Vì vậy, không làm điều đó ngay cả khi có thể – Trix

Trả lời

15

Dưới đây là cách bạn có thể làm điều đó khi xây dựng hình thức của bạn,

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

Bạn cũng có thể làm điều đó khi vẽ biểu mẫu form của bạn , hãy xem Twig template form function reference

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

Sau đó bạn có thể thêm một file css vào tài sản công cộng bó của bạn và gọi nó trong mẫu của bạn sử dụng,

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

Bạn đã sau đó để làm cho tài sản công cộng của bạn có thể truy cập thông qua trang web của bạn/thư mục. Cách tốt nhất để làm điều đó là để tạo liên kết tượng trưng nhắm mục tiêu tài sản công cộng bó của bạn, bạn đã sau đó để thực hiện

assets:install web/ --symlink 

Một cách tiếp cận hữu ích khi bạn muốn tùy chỉnh triệt để khối trường mẫu vẽ cụ thể (cành) là xác định form theme mới, đây là tài liệu>Form theming in Twig.

0

này có thể giúp:

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

Nếu bạn muốn thêm lớp để các lĩnh vực của bạn, bạn phải sử dụng attr thuộc tính đặc biệt với hình thức hành động xây dựng của bạn add theo cách

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

rằng Nếu bạn muốn liên kết tấm phong cách của bạn thay vào đó, bạn phải sử dụng tài sản.
Bạn có thể tìm thêm về tài sản here

Để làm việc với các tài sản gì bạn cần làm:

  • tạo file css của bạn
  • cài đặt tài sản của bạn với assets:install (Tôi đề nghị sử dụng --symlink tùy chọn đó sẽ phản ánh thay đổi css trừ khi chúng được lưu trong bộ nhớ cache)
  • tận hưởng CSS của bạn bằng cách sử dụng nó vào mẫu của bạn. Trong trường hợp của cành lá, bạn đã làm gì để < link href="{{ asset('bundles/acmebundle/css/style.css') }}" type="text/css" rel="stylesheet"> (nơi acmebundle là bó của bạn)
Các vấn đề liên quan