llama-laravel / bootstrap-form
只是一个带有一些Bootstrap特定便捷性的表单构建器。记住旧输入,检索错误消息,并自动处理所有您的Bootstrap模板标记。
Requires
- php: >=5.5
- laravel/framework: 5.1.*|5.2.*|5.3.*
- laravelcollective/html: 5.1.*|5.2.*|5.3.*
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: 3.7.*
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2024-09-28 20:25:21 UTC
README
BootForms基于我更通用的Form包,通过添加另一层抽象来快速生成标准Bootstrap3表单的标记。可能不适合您超级定制的准备发布的应用程序,但在原型设计阶段可以节省大量时间!
功能概述
- 多插件支持 //目前只有一个 :)
jQuery验证
- 可扩展
- 基于Laravel的表单构建器
- 验证规则可以从控制器设置
- 区分数字输入和字符串输入
- 用户友好的输入名称
- 远程规则,如唯一和存在
安装
您可以通过在项目的根目录中运行以下命令来使用Composer安装此软件包
composer require llama-laravel/bootstrap-form
如果您正在使用Laravel 5,您可以通过注册包含的服务提供程序来快速开始。
修改providers
数组在config/app.php
'providers' => [ //... Llama\BootstrapForm\BootstrapFormServiceProvider::class ],
将BootstrapForm
外观添加到aliases
数组在config/app.php
'aliases' => [ //... 'Form' => Llama\BootstrapForm\BootstrapFormFacade::class ],
您还需要通过运行以下Artisan命令发布配置文件和资源。
$ php artisan vendor:publish --provider="Llama\BootstrapForm\BootstrapFormServiceProvider"
现在您可以使用BootstrapForm开始使用了,请参阅此处。
配置
发布配置文件后,您可以在config/laravalid文件夹中找到它。配置参数如下
使用方法
$rules = ['name' => 'required|max:100', 'email' => 'required|email', 'birthdate' => 'date']; Form::open(['url' => 'foo/bar', 'method' => 'put', 'rules' => $rules]); Form::text('name'); Form::text('email'); Form::text('birthdate'); Form::close(); // don't forget to close form, it reset validation rules
此外,如果您不想在视图文件中与$rules纠缠,您可以在控制器或路由中设置它,无论是带有还是不带表单名称,使用Form::setValidation($rules, $formName)。如果您不提供表单名称,则为此设置第一个Form::open的规则
// in controller or route $rules = ['name' => 'required|max:100', 'email' => 'required|email', 'birthdate' => 'date']; Form::setValidateRules($rules); // in view Form::open(['url' => 'foo/bar', 'method' => 'put', 'name' => 'firstForm', 'rules' => $rules]); // some form inputs Form::close();
对于与Laravel中的输入类型相关的规则(如max、min),该包将寻找其他提供的规则来了解输入的类型。如果您提供具有max、min规则的整数或数字作为规则,则包假定输入是数字,并将其转换为data-rule-max而不是data-rule-maxlength。
$rules = ['age' => 'numeric|max'];
转换器默认假定输入是字符串。目前不支持文件类型。
验证消息
转换器默认使用laravel的验证消息(app/lang/en/validation.php)进行客户端验证。如果您想使用jQuery验证消息,您可以在您复制到您的配置目录的包的配置文件中设置useLaravelMessages,false。
插件
jQuery验证 当使用jQuery验证作为html/js验证插件时,您也可以在您的视图中包含任何扩展方法。发布资产后,它将被复制到您的公共文件夹。客户端最后一件事是初始化jQuery验证插件,如下所示
<script type="text/javascript"> $('form').validate({onkeyup: false}); //while using remote validation, remember to set onkeyup false </script>
扩展
有两种方法可以扩展包以包含您自己的规则。首先,您可以像下面那样动态地扩展当前的转换器插件
Form::getConverter()->getRuleTransformer()->extend('someotherrule', function($parsedRule, $attribute, $type){ // some code return ['data-rule-someotherrule' => 'blablabla']; }); Form::getConverter()->getMessageTransformer()->extend('someotherrule', function($parsedRule, $attribute, $type){ // some code return ['data-message-someotherrule' => 'Some other message']; });
其次,您可以在Llama\BootstrapForm\Converter
命名空间中创建自己的转换器(它扩展了baseconverter或任何当前的插件转换器),并在配置文件中更改插件配置以使用您自己的插件名称。
注意:如果您正在为某些现有的html/js插件创建转换器,请将其创建在
converters
文件夹中,并发送pull-request。
插件和支持的规则
jQuery Validation 要使用jQuery Validation,请在配置文件中将插件更改为Llama\BootstrapForm\Converter\JqueryValidation\Converter
。
注意:添加一些规则很简单。请检查相关转换器的
Rule
类。
贡献
您可以fork并为此包的开发做出贡献。所有pull-request都欢迎。
转换逻辑 包通过使用转换器(在src/converters中)进行规则转换。它使用所选插件的Converter类,该类扩展了BaseConverter/Converter类。您可以查看现有方法和插件,了解其工作原理。解释将很快完成。
其他提示
帮助块
您可以使用helpBlock()
助手在表单元素下方添加帮助块。
Form::help('一个强大的密码应该足够长,难以猜测。')
注意:如果存在验证错误,此帮助块将自动被错误覆盖。
许可证
MIT许可证下授权