大佬教程收集整理的这篇文章主要介绍了php-在运行时更改字段属性,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
$builder
->add('username', 'text', ['disabled' => false]);
创建$form实例后,是否可以更改form.username字段的禁用属性?
我发现您可以使用
$formBuilder->get('username')->getAttributes('data_collector/passed_options')['data_collector/passed_options']
然后相应地用setAttributes替换.
但是它看起来很脏.
我发现的另一种替代方法是$formBuilder-> remove和-> add()返回该元素.这也是丑陋的.
那么,是否有任何适当的设置方法?
场景:先构建表单,然后验证表单,以防万一无效,我需要将字段标记为禁用并再次呈现.
解决方法:
这是一个简化的示例,演示了如何使用动态表单元素进行操作,默认情况下,名称字段是禁用的,并且仅在提供成员编号时才启用:
class ExampleType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('member_number', 'integer', array(
'required' => false
));
$f = function(FormEvent $event) {
$form = $event->getForm();
$data = $event->getData();
$attr = array('disabled' => true);
if (isset($data) && $data['member_number']) {
unset($attr['disabled']);
}
$form->add('name', 'text', $attr);
};
$builder->addEventListener(FormEvents::PRE_SET_DATA, $f);
$builder->addEventListener(FormEvents::PRE_SUBMIT, $f);
}
以上是大佬教程为你收集整理的php-在运行时更改字段属性全部内容,希望文章能够帮你解决php-在运行时更改字段属性所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。