将基于INI的配置转换为YAML时出现问题

时间:2012-01-21 20:28:11

标签: zend-form

向所有人致以问候。

我正在开发一个使用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的表单只给我一个空白页面。经过调查,输出页面中不包含任何表单标记。任何帮助将不胜感激。

此致 特洛伊

1 个答案:

答案 0 :(得分:1)

我认为你的代码应该有更好的缩进:

production:
    logon:
        form:
            action: /customers/plogin
            method: post
....
相关问题