vir*_*ize 5 symfony-forms symfony
我想向大多数字段添加样式表类属性,但不是全部。
公共函数 buildForm(FormBuilder $builder, array $options)
{
$builder
->add('name_short', null, ['attr' => ['class' => 'rtl']] )
->添加('name_long')
->添加('个人资料教育')
->添加('个人资料工作')
->添加('个人资料政治')
->添加('推特')
->添加('脸书')
->添加('网站')
;
}
['attr' => ['class' => 'rtl']]有没有比向每个字段添加属性更简单的方法?寻找类似循环字段并在将字段添加到构建器后设置属性的内容。
感谢您的指点。
遇到这个并记得我最近找到了一种有效的方法。
基本上迭代所有字段,删除并使用合并选项重新添加它们。
以下面这个例子为例。
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('name_short')
->add('name_long')
->add('profile_education')
->add('profile_work')
->add('profile_political')
->add('twitter')
->add('facebook')
->add('website')
;
$commonOptions = array('attr' => array('class' => 'rtl'));
foreach($builder->all() as $key => $field)
{
$options = $field->getOptions();
$options = array_replace_recursive($options, $commonOptions);
$builder->remove($key);
$builder->add($key, get_class($field->getType()->getInnerType()), $options);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:更新为与 Symfony 3、4、5 和 6 配合使用。感谢@Massimiliano Arione