只需将主题应用于表单字段就很容易,例如:

{% form_theme form _self %}

{% block _product_name_widget %}
    {{ block('field_widget') }}
{% endblock %}

但是如果表单域是集合类型呢?例如: product['models'][1][comment
我不知道如何自定义它。 (这可能是这里的第一类问题)

更新: anwser 在这里:Symfony2: collection form field type with data-prototype

最佳答案

从 Symfony 2.1(它可能适用于 2.0 但不确定)应用主题收集你这样做:

假设我们有一个产品集合(我们有多个产品实体)

Controller :

    $repository = $this->getDoctrine()->getRepository('ExampleBundle:Product');
    $products = $repository->findAll();

    $productCollection = new Products;

    foreach ($products as $product) {
        $productCollection->getProducts()->add($product);
    }

    $collection = $this->createForm(new ProductsType, $productCollection);

    return $this->render('ExampleBundle:Default:index.html.twig', array(
        'collection' => $collection->createView()
            ));

您的主题可能如下所示:
{% block _productsType_products_entry_name_row %}
    <div class="yourDivName">{{ block('form_widget') }}</div>
{% endblock %}
{% block _productsType_products_entry_description_row %}
    <div class="yourDivDescription">{{ block('form_widget') }}</div>
{% endblock %}

诀窍是使用“条目”,其中 twig 将为您完成工作,将上述更改应用于您指定的每一行和每个字段

希望有帮助!

关于symfony2 : Applying theme to individual field for collection type,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11498487/

10-13 08:52