jor3l / bootstrap-form
Laravel 5 对 Bootstrap 3 的表单包装。
Requires
- php: >=5.4.0
- illuminate/config: ~5.0
- illuminate/session: ~5.0
- illuminate/support: ~5.0
- laravelcollective/html: ~5.0
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~4.6
This package is not auto-updated.
Last update: 2024-09-21 14:07:47 UTC
README
这是一个用于在 Laravel 5 中简单地创建 Bootstrap 3 风格表单组的包。它扩展了常规表单构建器,为您提供了带有标签、错误信息和适当类使用的水平表单组。
简介
当您想要生成 Bootstrap 3 表单组时,只需将 BootstrapForm
门面用于 Form
门面。
BootForm::text('username');
您将获得以下内容
<div class="form-group"> <label for="username" class="control-label col-md-2">Username</label> <div class="col-md-10"> <input type="text" name="username" class="form-control"> </div> </div>
当然,如果该字段存在错误,它甚至还会填充它们。
<div class="form-group has-error"> <label for="username" class="control-label col-md-2">Username</label> <div class="col-md-10"> <input type="text" name="username" class="form-control"> <span class="help-block">The username field is required.</span> </div> </div>
安装
首先,使用 Composer 需求此包。
composer require watson/bootstrap-form
现在,将这些服务提供者添加到您的 config/app.php
文件中(如果您已经有了 HtmlServiceProvider
,则不要添加)。
Collective\Html\HtmlServiceProvider::class, Watson\BootstrapForm\BootstrapFormServiceProvider::class,
并将以下内容添加到别名数组中(注意:Form 和 Html 必须在 BootstrapForm 之前列出)
'Form' => Collective\Html\FormFacade::class, 'HTML' => Collective\Html\HtmlFacade::class, 'BootForm' => Watson\BootstrapForm\Facades\BootstrapForm::class,
如果您更喜欢更短别名,请随意为 BootstrapForm 使用不同的别名。
配置
BootstrapForm 提供了多个配置选项。运行以下 Artisan 命令将配置选项发布到您的 config
目录
php artisan vendor:publish
水平表单大小
当使用水平表单时,您可以在此处指定左右列的默认大小。请注意,您可以指定每个列的任意多个类以提高移动响应性,例如
col-md-3 col-sm-6 col-xs-12
显示错误
默认情况下,此包将仅显示每个字段的第一个验证错误。如果您想列出字段的全部验证错误,只需将此配置选项设置为 true。
用法
打开表单
BootstrapForm 改进了打开表单的过程,无论是提供 Bootstrap 类还是管理基于模型的表单的模型。
// Passing an existing, persisted model will trigger a model // binded form. $user = User::whereEmail('example@example.com')->first(); // Named routes BootForm::open(['model' => $user, 'store' => 'users.store', 'update' => 'users.update']); // Controller actions BootForm::open(['model' => $user, 'store' => 'UsersController@store', 'update' => 'UsersController@update']);
如果传递了模型到 open 方法,它将被配置为使用 update
路由和 PUT
方法。否则,它将指向 store
方法作为 POST
请求。这样,您可以使用相同的打开标签来处理创建和保存。
// Passing a model that hasn't been saved or a null value as the // model value will trigger a `store` form. $user = new User; BootForm::open()
表单变体
有几个助手用于打开不同类型的 Bootstrap 表单。默认情况下,open()
将使用配置文件中设置的表单样式。这些助手采用与 open()
方法相同的输入。
// Open a vertical Bootstrap form. BootForm::vertical(); // Open an inline Bootstrap form. BootForm::inline(); // Open a horizontal Bootstrap form. BootForm::horizontal();
如果您想更改表单的列以偏离配置文件中的设置,您也可以通过 $options
数组来设置它们。
BootForm::open(['left_column_class' => 'col-md-2', 'left_column_offset_clsas' => 'col-md-offset-2', 'right_column_class' => 'col-md-10']);
文本输入
以下是文本输入的多种方法。请注意,方法签名与 Laravel 表单构建器提供的方法签名相对接近,但需要一个表单标签参数。
// The label will be inferred as 'Username'. BootForm::text('username'); // The field name by default is 'email'. BootForm::email(); BootForm::textarea('profile'); // The field name by default is 'password'. BootForm::password();
复选框和单选按钮输入
复选框和单选按钮略有不同,生成的标记也不同。
查看方法签名以配置选项。
// A checked checkbox. BootForm::checkbox('interests', 'Laravel', 'laravel', true);
对于单选输入也是如此。
BootForm::radio('gender', 'Male', 'male');
多个复选框和单选按钮
通过简单传递一个值/标签对的数组,您可以轻松生成一组复选框或单选按钮。
$label = 'this is just a label'; $interests = [ 'laravel' => 'Laravel', 'rails' => 'Rails', 'ie6' => 'Internet Explorer 6' ]; // Checkbox inputs with Laravel and Rails selected. BootForm::checkboxes('interests', $label, $interests, ['laravel', 'rails']); $genders = [ 'male' => 'Male', 'female' => 'Female' ]; // Gender inputs inline, 'Gender' label inferred. BootForm::radios('gender', null, $genders, null, true); // Gender inputs with female selected. BootForm::radios('gender', 'Gender', $genders, 'female');
提交按钮
// Pretty simple. BootForm::submit('Login');
关闭表单
// Pretty simple. BootForm::close();