向所有人致以问候。
我正在开发一个使用Zend_Config创建表单的项目。我正在努力扩大我的知识基础并遇到麻烦。
我有一个ini格式的表单配置文件,工作正常。我想将该表单配置转换为基于YAML的文件。我试图自己写转换,虽然我占了一切。由于这是我第一次进入yaml,我需要帮助才能看出错误。
有效的ini文件在这里:
[production]
;General From Meta Data
logon.form.action = "/customers/plogin"
logon.form.method="post"
logon.form.id="loginform"
;Form Element Prefix Data
logon.form.elementPrefixPath.decorator.prefix = "Elite_Decorator_"
logon.form.elementPrefixPath.decorator.path = "Elite/Decorator/"
logon.form.elementPrefixPath.decorator.type = "decorator"
logon.form.elementPrefixPath.validate.prefix = "Elite_Validate_"
logon.form.elementPrefixPath.validate.path = "Elite/Validate/"
logon.form.elementPrefixPath.validate.type = "validate"
;Form Element - email
logon.form.elements.email.type = "text"
logon.form.elements.email.options.required = "true"
logon.form.elements.email.options.label = "Email"
logon.form.elements.email.options.decorators.composite.decorator = "Composite"
logon.form.elements.email.options.validators.strlen.validator = "StringLength"
logon.form.elements.email.options.validators.strlen.options.min="2"
logon.form.elements.email.options.validators.strlen.options.max="50"
;Form Element - Password
logon.form.elements.password.type = "password"
logon.form.elements.password.options.required = "true"
logon.form.elements.password.options.label = "Password"
logon.form.elements.password.options.decorators.composite.decorator = "Composite"
logon.form.elements.password.options.validators.strlen.validator = "StringLength"
logon.form.elements.password.options.validators.strlen.options.min="2"
logon.form.elements.password.options.validators.strlen.options.max="20"
;Form Element - Submit
logon.form.elements.submit.type = "submit"
logon.form.elements.submit.options.label = "Logon"
;Form Display Group 1
logon.form.displaygroups.group1.name = "logon"
logon.form.displaygroups.group1.options.legend = "Please Login to your Account"
logon.form.displaygroups.group1.options.decorators.formelements.decorator = "FormElements"
logon.form.displaygroups.group1.options.decorators.fieldset.decorator = "Fieldset"
logon.form.displaygroups.group1.options.decorators.fieldset.options.style = "width:375px;"
logon.form.displaygroups.group1.elements.email = "email"
logon.form.displaygroups.group1.elements.password = "password"
logon.form.displaygroups.group1.elements.submit = "submit"
我的YAML翻译:
production:
logon:
form:
action: /customers/plogin
method: post
id: loginform
elementPrefixPath:
decorator:
prefix: Elite_Decorator_
path: Elite/Decorator/
type: decorator
validate:
prefix: Elite_Validate_
path: Elite/Validate/
type: validate
elements:
email:
type: text
options:
required: true
label: Email
decorators:
composite:
decorator: Composite
validators:
strlen:
validator: StringLength
options:
min: 2
max: 50
password:
type: text
options:
required: true
label: Password
decorators:
composite:
decorator: Composite
validators:
strlen:
validator: StringLength
options:
min: 2
max: 20
submit:
type: submit
options:
label: Logon
displaygroups:
group1:
name: logon
options:
legend: Please login to your account
decorators:
formelements:
decorator: FormElements
fieldset:
decorator: Fieldset
options:
style: width:375px;
elements:
email: email
password: password
submit: submit
基于YAML的表单只给我一个空白页面。经过调查,输出页面中不包含任何表单标记。任何帮助将不胜感激。
此致 特洛伊
答案 0 :(得分:1)
我认为你的代码应该有更好的缩进:
production:
logon:
form:
action: /customers/plogin
method: post
....