nifus/formbuilder
Requires
- php: >=5.3.0
- intervention/image: 2.*
This package is not auto-updated.
Last update: 2024-09-28 16:31:03 UTC
README
这是一个用于生成任何复杂程度的HTML表单的Composer包。它允许简化表单的创建,完全控制表单的外观,扩展表单元素集,添加插件,创建AJAX表单,在客户端和服务器端控制字段填充,将表单数据保存到模型,并从模型中加载数据到表单。
安装
Formbuilder就像其他包一样通过Composer安装: composer require nifus/formbuilder 0.1.x
。
然后如果您使用Laravel,请将Formbuilder的服务提供者添加到您的config/app.php
文件中
'providers' => array( // ... 'Nifus\Formbuilder\FormbuilderServiceProvider', ),
然后
'aliases' => array( // ... 'Formbuilder' => 'Nifus\Formbuilder\Facade', ),
使用
要创建表单,需要创建一个\Nifus\FormBuilder\FormBuilder对象的实例,并传递一个描述表单及其参数的数据数组。还可以使用更简单的面向对象方法,结合现代IDE可以帮助您更容易地了解包的方法和属性。
下面我们将详细介绍面向对象的使用方法。首先需要创建一个\Nifus\FormBuilder\FormBuilder对象
$form = \Nifus\FormBuilder\FormBuilder::create('login');
login - 表单的ID。
接下来可以设置表单的常规参数
$form->setAction('/login') ->setMethod('post') ->setEnctype('multipart/form-data') ..
如您所见,可以链式调用方法,避免不必要的冗余。
表单的外观是工作的重要部分。可以通过多个方法来设置它
$form->setRender('bootstrap3')
setRender将设置表单的输出格式。可能的选项有:bootstrap3,paragraf,table,withoutformat。您还可以添加自己的表单样式选项。withoutformat是一个通用选项,在这种格式中,您可以选择不进行格式化,而是直接操作表单的所有元素。这可能会使开发过程更加复杂,但允许您处理非标准布局的表单。
$form->setCols(2)
将设置表单的列数。此方法适用于所有格式选项。它由bootstrap3和table支持。
我们接近表单开发的最重要阶段。这是描述组成表单的元素或控件的过程。
$form->setFields( [ Formbuilder::createField('text')->setName('login')->setLabel('Login'), Formbuilder::createField('password')->setName('pass')->setLabel('Password'), ] )
setFields方法接受一个对象数组作为参数,每个对象描述一个表单元素。表单元素不仅包括我们通过HTML提供的标准元素,还包括创建自己的元素的可能性。该包中今天有超过二十种字段,可以显著扩展表单的功能。这包括多文件上传,视觉编辑器等。
每个表单元素都有自己的方法集。我们只描述标准方法,其他方法您需要查阅文档或直接查看代码。
Formbuilder::createField('text') ->setName('login') ->setLabel('Login') ->set('id','login_id') ->set('class','red') ..
除了您可以自己创建的表单元素外,还有另一个扩展功能和表单自定义的工具。这是扩展。扩展连接到整个表单
$form->setExtensions(['Placeholder','Ajax'])
输出结果
$form->render();
如果您不使用withoutformat进行表单格式设置,则输出方法将返回表单的HTML代码,足以直接输出。
保存和输出数据
表单是添加和编辑数据的一种手段。为了将填写的表单保存,我们需要指定所工作的模型
->setModel('\User')
如果需要不仅仅是生成表单,而是将数据放入表单中,则我们指定要加载的记录号
->setId(2)
上面我们简要介绍了包的基本功能。