soliantconsulting/formidable-bootstrap

Formidable 的 Twitter Bootstrap 3 集成

0.1.2 2016-10-04 16:41 UTC

This package is auto-updated.

Last update: 2024-09-16 06:59:23 UTC


README

此软件包提供了一些视图辅助工具,用于简化使用 FormidableTwitter Bootstrap 3 渲染表单。默认情况下,它包含一个工厂来使用这些辅助工具在 Plates 中,但视图辅助工具也可以用于支持可调用的其他模板引擎。

提供的视图辅助工具具有非常主观的 HTML 输出。如果您需要不同类型的输出,则此库不适合您,您应该编写自己的辅助工具。

安装

通过 composer 安装

$ composer require soliantconsulting/formidable-bootstrap

用法

以下是在模板中使用不同视图辅助工具的简单示例

<form method="POST">
    <?php echo $this->formErrors($form->getGlobalErrors()); ?>

    <?php echo $this->inputText('Name', $form->getField('name')); ?>
    <?php echo $this->inputText('Color', $form->getField('color'), 'color'); ?>
    <?php echo $this->inputPassword('Password', $form->getField('password')); ?>
    <?php echo $this->textarea('Notes', $form->getField('notes')); ?>
    <?php echo $this->select('Role', $form->getField('role'), ['user' => 'User', 'admin' => 'Admin']); ?>
    <?php echo $this->select('Groups', $form->getField('role'), ['alpha' => 'Alpha', 'beta' => 'Beta'], true); ?>
    <?php echo $this->select('Country', $form->getField('country'), [
        'Europe' => [
            'de' => 'Germany',
            'fr' => 'France',
        ],
        'America' => [
            'ca' => 'Canada',
            'us' => 'United States',
        ],
    ]); ?>
    <?php echo $this->checkbox('Active', $form->getField('active')); ?>
</form>

如你所见,一些视图辅助工具接受额外的可选参数。`inputText()` 辅助工具接受一个类型作为第三个参数,默认情况下,它将渲染一个通用的 `text` 输入,但您可以将其更改为任何其他输入类型。

`select()` 视图辅助工具接受一个布尔值作为最后一个参数,表示是否应该为 `multiple`。必需的 `options` 数组可以是简单的字符串到字符串映射,也可以包含嵌套数组,如国家示例中所示,以生成选项组,这些选项组可以无限嵌套。

如果您需要将表单分成字段集,您可以手动进行。那里不需要任何额外的辅助工具。当您的表单中有一个子对象可以分配错误,以便它们不与特定字段相关联时,您可以从伪字段中提取错误并将它们传递给 `formErrors()` 视图辅助工具。

<fieldset>
    <legend>Address</legend>

    <?php echo $this->formErrors($form->getField('address')->getErrors()); ?>

    <?php echo $this->inputText('Street', $form->getField('address.street')); ?>
    <?php echo $this->inputText('City', $form->getField('address.city')); ?>
    <?php echo $this->inputText('Zipcode', $form->getField('address.zipcode')); ?>
</fieldset>

自定义错误消息

默认情况下,视图辅助工具使用 Formidable 本身提供的错误消息。如果您想使用不同的消息或使用自定义约束和自定义错误消息,您可以通过配置添加额外的消息。

return [
    soliant_formidable_bootstrap => [
        'messages' => [
            'error.custom' => 'Some custom error',
        ],
    ],
];

消息遵循 Formidable 的 ErrorFormatter 中使用的相同模式。