gpt4 book ai didi

Symfony 表单/FormBuilder : How to add an option or attribute to multiple form fields

转载 作者:行者123 更新时间:2023-12-02 05:00:50 25 4
gpt4 key购买 nike

我想为大多数字段添加样式表类属性,但不是全部。
公共(public)函数 buildForm(FormBuilder $builder, array $options)
{
$ builder
->add('name_short', null, ['attr' => ['class' => 'rtl']] )
->添加('name_long')
->添加('profile_education')
->添加('profile_work')
->添加('profile_political')
->添加(“推特”)
->添加(“ Facebook ”)
->添加('网站')
;
}

有没有比添加属性 ['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);
}
}
编辑:更新为与 Symfony 3、4、5 和 6 一起使用。感谢@Massimiliano Arione

关于Symfony 表单/FormBuilder : How to add an option or attribute to multiple form fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16466370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com