【问题标题】:Add custom class to Symfony form label将自定义类添加到 Symfony 表单标签
【发布时间】:2017-12-05 16:54:08
【问题描述】:

我正在构建一个 Symfony 2.7 表单,我希望能够自定义标签。

目前我可以使用Symfony docs 中概述的表单构建器定义标签,但是我看不到任何无需在模板上进行自定义标签 CSS 的方法。

我知道我可以通过在我的类中单独打印 form_label 来添加 CSS 类,但我更愿意将其全部保留在表单构建器中。

我在下面添加了我当前的表格以供参考。

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('dob_day', 'choice', array(
            'required' => true,
            'choices' => $dobDays,
            'mapped' => false,
            'attr' => array(
                'label' => 'Day',
                'class' => 'form-control'
            )
        ))

        ->add('dob_month', 'choice', array(
            'required' => true,
            'choices' => $dobMonths,
            'mapped' => false,
            'attr' => array(
                'label' => 'Month',
                'class' => 'form-control'
            )
        ))

        ->add('dob_year', 'choice', array(
            'required' => true,
            'choices' => $dobYears,
            'mapped' => false,
            'attr' => array(
                'label' => 'Year',
                'class' => 'form-control'
            )
        ));
}

【问题讨论】:

    标签: php css symfony twig


    【解决方案1】:

    如果您想在表单类型的 HTML 中添加一些 CSS,请使用 style 属性。

    ->add('dob_year', 'choice', array(
        'required' => true,
        'choices' => $dobYears,
        'mapped' => false,
        'attr' => array(
            'label' => 'Year',
            'class' => 'form-control',
            'style' => 'max-width: 4rem;'. // Concat. the styles across lines for clarity.
                'border: solid 0.1rem teal;'
        )
    ));
    

    也就是说,

    formType 内部可能是我修改这些元素样式的最后一个地方,如果我是可怜的开发人员,在你离开时必须保持这种形式。

    虽然可以在此处添加内联 CSS,但不要放置超过几行。如果它变得更多,请将一个类添加到某个外部“main.css”,然后将其添加到您的主模板(所有其他模板都继承自该模板),您将能够重用您创建的样式。

    最后的想法

    当您尝试使您的 formType 模块化时,这实际上非常有用,这就是我想回答的原因:) 然后我被一个 最佳实践 口头禅迷住了如果这种技术没有它的位置,但它确实有!

    【讨论】:

    • 感谢@rhono,我真的应该考虑一下这个表单的可扩展性,不要在表单构建器中使用太多样式:)
    猜你喜欢
    • 2011-01-15
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 2016-09-20
    • 2016-07-10
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多