我已经在我的FormType中定义了一些字段,每个表单元素的类值如下所示
$builder->add('name', 'text', array(
'label' => 'Name',
'attr' => array('class' => 'form-control'),
));
在twig文件中写得像这样
{{ form_widget(form.name) }}
此代码生成这样的输出
<input type='text' name='name' class='form-control' />
现在我想在此元素中添加额外的类,如error
类,它会生成以下输出
<input type='text' name='name' class='form-control error' />
为了生成上面的输出,我在Twig文件中编写了类似的代码 -
{{ form_widget(form.name,{attr:('class'=>'error')}) }}
此代码生成以下输出 -
<input type='text' name='name' class='error' />
所以我很困惑,应该得到什么样的预期结果。在html中为我的表单元素添加额外的类值。 我的预期输出是
<input type='text' name='name' class='form-control error' />
答案 0 :(得分:0)
您可以在class属性中添加多个类。
像这样:
$builder->add('name', 'text', array(
'label' => 'Name',
'attr' => array('class' => 'form-control error'),
));
答案 1 :(得分:0)
根据您对@ Moshikaro的回答的评论,您可能不得不使用流控制来构建类字符串,无论是在Twig还是Controller中:
<强>枝条强>
{% set errorClass = '' %}
{% if errorTest %}
{% set extraClass = ' error' %}
{% endif %}
{{ form_widget(form.name,{attr:('class'=>'form-control'~errorClass)}) }}
或者
{% set errorClass = '' %}
{% if errorTest %}
{% extraClass = ' error' %}
{% endif %}
{{ form_widget(form.name,{attr:('class'=>form.config.attributes.class~errorClass)}) }}
<强>控制器强>
$errorClass = "";
if ($test)
{
$errorClass += " error";
}
$cssClasses = "form-control" + $errorClass;
$builder->add('name', 'text', array(
'label' => 'Name',
'attr' => array('class' => $cssClasses),
));
无论如何,你明白了。我还没有能够测试任何一个。