kris / laravel4-form-builder
Laravel 表单生成器 - 类似 Symfony
1.6.11
2015-06-30 20:08 UTC
Requires
- php: >=5.4.0
- illuminate/database: 4.2.*
- illuminate/html: 4.2.*
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~4.0
README
Laravel 4 表单生成器
受 Symfony 表单生成器启发的 Laravel 4 表单生成器。借助 Laravel 的 FormBuilder 类,可以创建可轻松修改和重用的表单。默认支持 Bootstrap 3。
Laravel 5
要检查 Laravel 5 版本,请查看 laravel-form-builder
文档
有关详细文档,请参阅 http://kristijanhusak.github.io/laravel-form-builder/。
注意 版本 4 和 5 之间有一些小的差异(配置路径等),请留意这些。
变更日志
变更日志可以在 这里找到
###安装
{ "require": { "kris/laravel4-form-builder": "1.6.*" } }
运行 composer update
然后将服务提供者添加到 config/app.php
'providers' => [ // ... 'Kris\LaravelFormBuilder\FormBuilderServiceProvider' ]
以及 Facade(也位于 config/app.php
)
'aliases' => [ // ... 'FormBuilder' => 'Kris\LaravelFormBuilder\Facades\FormBuilder' ]
快速入门
创建表单类很简单。假设 PSR-4 已设置用于在 app/Project
文件夹中加载命名空间 App
。使用简单的 artisan 命令,我们可以创建表单
php artisan make:form app/Project/Forms/SongForm --fields="name:text, lyrics:textarea, publish:checkbox"
表单创建在路径 app/Project/Forms/SongForm.php
,内容如下
<?php namespace App\Forms; use Kris\LaravelFormBuilder\Form; class SongForm extends Form { public function buildForm() { $this ->add('name', 'text') ->add('lyrics', 'textarea') ->add('publish', 'checkbox'); } }
如果您想创建一个没有任何字段的空表单,只需跳过传递 --fields
参数
php artisan make:form app/Project/Forms/PostForm
得到
<?php namespace App\Forms; use Kris\LaravelFormBuilder\Form; class PostForm extends Form { public function buildForm() { // Add fields here... } }
之后,在控制器中实例化该类并将其传递到视图中
<?php namespace App/Http/Controllers; use Illuminate\Routing\Controller as BaseController; use Kris\LaravelFormBuilder\FormBuilder; class SongsController extends BaseController { public function create() { $form = \FormBuilder::create('App\Forms\SongForm', [ 'method' => 'POST', 'url' => route('song.store') ]); return view('song.create', compact('form')); } }
使用 form()
辅助函数在视图中打印表单
<!-- resources/views/song/create.blade.php -->
@extend('layouts.master')
@section('content')
{{{ form($form) }}}
@endsection
上述代码将生成以下 HTML
<form method="POST" action="http://example.dev/songs"> <input name="_token" type="hidden" value="FaHZmwcnaOeaJzVdyp4Ml8B6l1N1DLUDsZmsjRFL"> <div class="form-group"> <label for="name" class="control-label">Name</label> <input type="text" class="form-control" id="name"> </div> <div class="form-group"> <label for="lyrics" class="control-label">Lyrics</label> <textarea name="lyrics" class="form-control"></textarea> </div> <div class="form-group"> <label for="publish" class="control-label">Publish</label> <input type="checkbox" name="publish" id="publish"> </div> </form>
贡献
项目遵循 PSR-2 标准,并由 PHPUnit 测试覆盖。拉取请求应包括测试并通过 Travis CI 构建。
要运行测试,首先使用 composer install
安装依赖项。
之后,可以使用 vendor/bin/phpunit
运行测试