zofe/dataform

Form helper / builder with eloquent support, for Deficient

1.0.7 2014-11-13 09:56 UTC

This package is auto-updated.

Last update: 2024-12-05 02:21:39 UTC


README

DataForm is a form builder By default it produce Bootstrap 3 compatible output.

At this moment is built on Deficient (a subset of laravel components including eloquent and blade, plus burp router). The plan is to make it compatible also with laravel, as standard package.

It can

  • Make a Form
  • Bind the form with an eloquent model

usage

as form helper:

    $form = DataForm::create();
    $form->text('title','Title'); //field name, label
    $form->text('body','Body')->rule('required'); //validator 
    $form->submit('Save');
    $form->saved(function() use ($form)
    {
        //do something with post values, then..
        
        $form->message("ok record saved");
        $form->linkRoute("home","Back to the Form");
    });
    ...

form with model binding (preset values and store new values on save):

    $form = DataForm::source(User::find(1));
    $form->text('title','Title'); //field name, label
    $form->textarea('body','Body')->rule('required'); //validation
    $form->checkbox('public','Public');
    $form->select('role', 'Role')->options(Role::lists("name", "id"));
    $form->submit('Save');
    $form->saved(function() use ($form)
    {
        $form->message("ok record saved");
        $form->linkRoute("home","Back to the Form");
    });
    ...

for field "rules" you can reference to laravel validation

note that @ this time:

  • there are only text,textarea,select and checkbox fields
  • model-binding still not support relations

why not starting from laravel?

We choose "deficient" (a subset of laravel components) to be more isoladed, and give the ability to use it stand-alone or embedded in any other project.

Installation

install via composer

{
    "require": {
        "zofe/dataform": "dev-master"
    }
}

Setup

To configure database, views, you must reference to Deficient
This is a small how-to

  • create minimum folders / configuration files
  • deploy dataform views
  • deploy a front controller and a sample (optional, but suggested)
  $ php vendor/zofe/deficient/deficient setup:folders
  $ php vendor/zofe/dataform/dataform setup:views
  $ php vendor/zofe/dataform/dataform setup:router