首先是一些代码:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->addEventListener(
FormEvents::POST_SET_DATA,
function (FormEvent $event) {
/** @var Company $company */
$company = $event->getData();
$form = $event->getForm();
$form->add(
'paymentTerms',
'integer',
array(
'label' => 'Payment Terms',
'label_attr' => array(
'class' => 'col-sm-4 control-label'
),
'attr' => array(
'class' => 'form-control'
),
'error_bubbling' => true
)
);
}
)->setAction('test action')->setAttributes(array('class' => 'form-horizontal'));
}
有人可以解释为什么我似乎无法在表单中添加css类吗?
在上面的示例中,->setAction('test action')
完全正常,但->setAttributes(array('class' => 'form-horizontal'))
对表单没有任何影响。
我也试过->setAttribute('class', 'form-horizontal')
而没有运气。没有错误,就好像它被忽略了一样。为什么呢?
答案 0 :(得分:1)
您可以像往常一样将attr
定义添加到默认值中:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
...
'attr' => array(
'class' => 'form-horizontal'
),
));
}
无论如何,最好将样式定义限制在您的视图中。您应该将class
属性添加到表单中,如下所示(documentation):
{{ form_start(form, {'attr': {'class': 'form-horizontal' }}) }}