php – 如何基于TreeBuilder对象动态构建表单?
发布时间:2020-12-13 13:23:08 所属栏目:PHP教程 来源:网络整理
导读:我想为我的类定义配置模式,并使用管理员选项覆盖它们. 为了做到这一点,我需要一个表单来从管理员捕获数据. 在Symfony配置组件中,TreeBuilder类负责定义配置模式.并且如您所知,Form Component具有类似于TreeBuilder的树状结构. 如何基于TreeBuilder实例动态制
我想为我的类定义配置模式,并使用管理员选项覆盖它们.
为了做到这一点,我需要一个表单来从管理员捕获数据. 在Symfony配置组件中,TreeBuilder类负责定义配置模式.并且如您所知,Form Component具有类似于TreeBuilder的树状结构. 如何基于TreeBuilder实例动态制作Form对象?
您的treebuilder或其中的一部分必须是可迭代的.因此,通过让它尽可能严格地表示表单,您可以使用它轻松地将配置映射到构建器.使用yml格式最简单:
form: name: 'exampleForm' path: 'target_path' fields: fieldName: type: 'TextType' attr: # some additional options otherFieldName: type: 'TextType' attr: # some additional options 有关详细信息,请参阅配置组件的处理部分:http://symfony.com/doc/current/components/config/definition.html#processing-configuration-values 然后可以使用表单工厂处理已处理的配置,可能如下所示: $config = $configuration->processConfiguration($config,FormType::class,null,$config['path']); $formBuilder = $container->get('form.factory')->createNamedBuilder($config['name'); foreach ($config['fields'] as $field) { $formBuilder->add($fieldName,$field['type'],$field['attr']); } $form = $formBuilder->createForm(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- php – 使代码与register_globals关闭
- 从PHP / Java / Python Web应用程序调用shell命令(包括那些
- php – 如何解决mysqli_fetch_array()错误
- php – 在课堂上有相当数量的公共财产是否合理?
- php – .htaccess将动态网址片段添加到现有的重写规则中
- php – mod_pagespeed为响应添加标记
- mod_php、FastCGI、PHP-FPM等PHP运行方式对比
- php – 如何将自定义掩码应用于Python中的数字字符串?
- php – 我可以让Smarty根据优先级从目录中选择一个模板吗?
- php监测数据是否成功插入到Mysql数据库的方法