Symfony2 的 CSS 形式 : "Hello World" equivalent

标签 css forms symfony

如何修改 fields.html.twig 模板? 我只是在寻找“hello world”等同于看到表单的第一次更改。

什么在起作用(在 add.Article.html.twig 的捆绑 View 中):

         <div class="well;">
              <form method="post" {{ form_enctype(form) }}>
                 {{ form_widget(form,{attr: {class:'test'}} ) }}
                 <input type="submit" class="btn btn-primary" />
              </form>
         </div>

测试类只做一个 CSS .test{background-color:grey;}。我通常使用 Bootstrap。


在 fields.html.twig 我有:

    {% block aliquam_input %}
    {% spaceless %}
      <div>
        {{ form_label(form) }}
        {{ form_errors(form) }}
        {{ form_widget(form, { 'attr': {'class': 'test'} }) }}
      </div>
    {% endspaceless %}
    {% endblock %}

在 app/config/config.yml 中:

   # Twig Configuration
   twig:
   //..
     form:
        resources:
            - 'AliquamSummaryBundle:Form:fields.html.twig'

fields.html.twig 在主 Twig 上呈现正常,因为我在删除字段 Twig 中的哈希之一时遇到错误。


当我尝试使 fields.html.twig 对 Article.html.twig 生效时,不起作用(即类测试未显示):

   {% block aliquam_input %}
   {% spaceless %}
    <div class="well;">
        <form method="post" {{ form_enctype(form) }}>
            {{ form_widget(form) }}
            <input type="submit" class="btn btn-primary" />
        </form>
    </div>
   {% endspaceless %}
   {% endblock %}

由于所有表单都具有相同的格式,所以我不希望将所有 html 属性都设置到每一行。但是如何让“test”类从fields.html.twig模板生效呢?

___________________________ David 的更新 _____________ 谢谢@David,但不幸的是,将名称添加为 form.name 并没有改变任何东西。 CSS属性仍然没有传递到html中的表单中。井后分号的井点;这是一个深夜打字错误,但与问题无关。

这是我目前的想法。我可能最终不得不在表单中为每一行输入 bootstrap CSS(可怕的想法),或者想出如何通过实体选项来做到这一点,这几乎与为每一行做同样的可怕想法。由于文档提供了通过 app/config/config.yml 输入所有表单的模板,因此应该有一种更简单的方法,但我不明白。

下面是到目前为止唯一让 CSS 发挥作用的方向,即 class .test{background-color: black;} 正在发挥作用:

    {# ..\addArticle.html.twig #}

    <div class="well">
        <form method="post" {{ form_enctype(form) }}>
            {{ form_widget(form) }}
            <input type="submit" class="btn btn-primary" />
       </form>
     </div>

注意:div 周围没有 {% block .. %},这是有道理的,因为我通过 app/config/config.yml 将 fields.html.twig 包含到 symphony 标准小部件中。以上内容与下面的 fields.html.twig 一起使用。

   {# ..\fields.html.twig #}

    {% block widget_attributes %}
    {% spaceless %}
          {{" class=\'test\'" }}
    {% endspaceless %}
    {% endblock widget_attributes %}

到目前为止,只有带有文本区域的字段显示黑色,有点像“hello world”。我不确定这是否是正确的方法,因为我在这个论坛和其他论坛中没有发现任何类似的东西,并且文档只说明查看 git 上的 form_div_layout.html.twig 来决定要更改哪个属性,这并不是很有帮助(对我来说)。

最佳答案

首先在您的 add.Article.html.twig 中将您的 well; 类更改为 well

为了在您的小部件上放置一个类,我认为您可以尝试

{{ form_widget(form.name, {'attr': {'class': 'test'}}) }}

您的代码的不同之处在于 form.name 参数。如果您只提供表单,它将不会应用传递的选项。 See the doc

关于Symfony2 的 CSS 形式 : "Hello World" equivalent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22871572/

相关文章:

html - 在 jquery mobile 中配置带有数字的自定义密码键盘

javascript - 使用 javascript 隐藏/显示 HTML 表单(按下按钮时)

HTML 格式,使我的表单看起来不错

Symfony Console Questionn Helper - 如何提示默认值

javascript - jQuery 在 div 内垂直滚动图像

javascript - 禁用 JS 时 Bootstrap 折叠行为的回退

jquery - 如何增加复选框的平均高度和宽度?

php - HTML 登录表单连接到数据库

javascript - 在JS中调用twig模板

symfony - 获取我数据库中所有表的名称