PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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,请注明来意。
标签: