【发布时间】:2015-06-25 12:45:46
【问题描述】:
在 Symfony2 项目中,我想制作一个配置文件,该文件被加载并给出指示,对于每个表单字段,是否显示该字段,以及是否需要,取决于“项目”的某些属性" 实体。
parameters:
fieldProperty:
MyProfile:
Name:
Label: 'Your name'
ProjectType:
IT: 2
Non-It: 2
Hybrid: 2
ProjectSize:
Small: 2
Medium: 2
Large: 2
Massive: 2
ProjectComplexity:
Low: 2
Medium: 2
High: 2
ProjectTimingUrgency:
Regular: 2
Urgent: 2
Mandatory: 2
Critical: 2
HighlyCritical: 2
Sensitivity: 'none'
Nickname:
Label: 'Your nickname'
ProjectType:
IT: 0
Non-It: 0
Hybrid: 0
ProjectSize:
Small: 0
Medium: 0
Large: 0
Massive: 0
ProjectComplexity:
Low: 0
Medium: 0
High: 1
ProjectTimingUrgency:
Regular: 0
Urgent: 0
Mandatory: 0
Critical: 0
HighlyCritical: 1
Sensitivity: 'none'
我还使用它来确定给定字段的表单标签。考虑到我有类似 2000 个字段的内容,我认为让 formBuilder 的 $builder->add 的 attr 部分动态化会很优雅,例如,如果它的类型为“textarea”,那么在 attr定义行数的参数rows。这基本上意味着我需要定义 YAML 文档的正确结构:如果字段 A 存在并且类型为“whatever”,则期望字段 B(甚至可能指定如果没有字段 B,则默认为"4") 等等。
我基本上需要一个结构化解析器。考虑到 fieldProperty 属性的第一个“子项”是实体名称,因此解析器不必期待某个单词,只需要字符串。以下子字段名称的情况相同(在下面的示例中,实体是“myProfile”,两个字段是“名称”和“昵称”)。从那一刻起,结构开始发挥作用。
在 YAML 中是否可行,或者我必须切换到对人类不太友好的 XML?
【问题讨论】:
-
在使用不同的关键字进行谷歌搜索后,我发现它在 YAML“本身”中是不可行的,但有像 Rx 或 Kwalify 这样的解决方案可能会有所帮助。
标签: symfony yaml symfony-forms