为 shadowprince/slimext 的表单组件

0.2.3 2013-11-19 14:00 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:33:02 UTC


README

Forman 是一个用于处理表单的库。

在代码中

$form = new \Forman\Form(
    new \Forman\Field\Value("email"),
    new \Forman\Field\Text("text"),
    (new \Forman\Field\Checkbox("subscr"))->setValue(1)
);

if ($data = $form->process($_POST)) {
    // send email
}

render_template("contact.html", array(
    "form" => $form->getRenderer("\Forman\Render\HTML\Renderer")
        ->setAction("/contact")
        ->GET(),
));

在模板中

{{ form.render|raw }}

{{ form.top|raw }}
That's my form
{{ form.elements|raw }}
{{ form.bottom|raw }}

或甚至

<form action="{{ form.getAction }}" method="POST">
    {% for field in form.getFields %}
        {% if field.getCaption %}
            <label class="caption">{{ field.getCaption }}</label>
        {% endif %}
        <span class="field">
            {{ field.renderTag|raw }}
        </span>
        {% if field.getHint %}
            <span class="hint">
                {{ field.getHint }}
            </span>
        {% endif %}
    {% endfor %}
</form>

Forman 为 slimext 编写,但并不依赖于它,你可以与任何框架一起使用,也可以单独使用。传递给表单验证器的 process 参数的额外参数(你可以提供 ORM 对象或应用程序实例)。