2017 © Pedro Peláez
 

library modelform

ModelForm is a PHP Form Abstraction for Laravel based on Django Forms and Formset, but completely integrated with the Laravel FormBuilder.

image

andersondanilo/modelform

ModelForm is a PHP Form Abstraction for Laravel based on Django Forms and Formset, but completely integrated with the Laravel FormBuilder.

  • Wednesday, March 11, 2015
  • by andersondanilo
  • Repository
  • 5 Watchers
  • 21 Stars
  • 88 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

Travis Code Climate Test Coverage Latest Stable Version Latest Unstable Version License, (*1)

What is

ModelForm is a PHP Form Abstraction for Laravel based on Django Forms and Formset, but completely integrated with the Laravel FormBuilder., (*2)

Instalation

To get the latest version of ModelForm simply require it in your composer.json file, (*3)

php composer.phar require "andersondanilo/modelform:dev-master"

Examples of usage

Simple example: Without model

// SimpleForm.php
use ModelForm\Form;
use ModelForm\Fields\CharField;
use ModelForm\Fields\IntegerField;

class SimpleForm extends Form
{
    public function makeFields()
    {
        $this->name = new CharField(['label' => 'Name']);
        $this->age = new IntegerField(['label' => 'Age']);
    }
}

Instancializing Form, (*4)

$simpleForm = new SimpleForm(['data' => Input::old() ?: Input::all()]);

Rendering model in view, (*5)

    {{ $simpleForm->name->label() }}:
    {{ $simpleForm->name->text(['class' => 'form-control']) }}

Acessing values after, (*6)

    $name = $simpleForm->name->value;

With Model and Validator

use ModelForm\Form;
use ModelForm\Fields\CharField;
use ModelForm\Fields\IntegerField;

class SimpleForm extends Form
{
    public function makeFields()
    {
        $this->name = new CharField(['label' => 'Name']);
        $this->age = new IntegerField(['label' => 'Age']);
    }

    public function makeModel()
    {
        return new MyModel();
    }

    public function makeValidator($data)
    {
        return Validator::make($data, [
            'name' => 'required'
        ]);
    }
}

You can instancialize without model and then the model is created by form, or start with a already existing model., (*7)

$model10 = MyModel::find(10);
$form = new SimpleForm(['model' => $model10, 'data' => Input::old() ?: Input::all()]);

Validating, (*8)

if(!$simpleForm->isValid()) {
    return Redirect::back()->withErrors($simpleForm->errors())->withInput();
}

Saving your model, (*9)

$simpleForm->save();

Formsets

use ModelForm\FormSet;

class SimpleFormSet extends FormSet
{
    public function makeForm($model=null)
    {
        return new SimpleForm(['model'=>$model]);
    }
}

Create the empty formset instance:, (*10)

$simpleFormSet = new SimpleFormSet(['data' => Input::old() ?: Input::all());

Or create a formset filled with a model relation:, (*11)

$addressFormSet = new AddressFormSet(['relation'=>$customer->addresses(), 'data' => Input::old() ?: Input::all());

The validation and saving of formset is the symmetric with form., (*12)

if(!$addressFormSet->isValid()) {
    return Redirect::back()->withErrors($addressFormSet->errors())->withInput();
}
$addressFormSet->save();

The Versions

11/03 2015

dev-master

9999999-dev

ModelForm is a PHP Form Abstraction for Laravel based on Django Forms and Formset, but completely integrated with the Laravel FormBuilder.

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel form django formbuilder modelform

31/01 2015

1.0.1

1.0.1.0

ModelForm is a PHP Form Abstraction for Laravel based on Django Forms and Formset, but completely integrated with the Laravel FormBuilder.

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel form django formbuilder modelform

31/01 2015

1.0.0

1.0.0.0

ModelForm is a PHP Form Abstraction for Laravel based on Django Forms and Formset, but completely integrated with the Laravel FormBuilder.

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel form django formbuilder modelform