Package Data | |
---|---|
Maintainer Username: | andersondanilo |
Package Create Date: | 2014-12-30 |
Package Last Update: | 2016-01-23 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-17 03:01:06 |
Package Statistics | |
---|---|
Total Downloads: | 179 |
Monthly Downloads: | 10 |
Daily Downloads: | 0 |
Total Stars: | 20 |
Total Watchers: | 5 |
Total Forks: | 0 |
Total Open Issues: | 0 |
ModelForm is a PHP Form Abstraction for Laravel based on Django Forms and Formset, but completely integrated with the Laravel FormBuilder.
To get the latest version of ModelForm simply require it in your composer.json file
php composer.phar require "andersondanilo/modelform:dev-master"
// 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
$simpleForm = new SimpleForm(['data' => Input::old() ?: Input::all()]);
Rendering model in view
{{ $simpleForm->name->label() }}:
{{ $simpleForm->name->text(['class' => 'form-control']) }}
Acessing values after
$name = $simpleForm->name->value;
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.
$model10 = MyModel::find(10);
$form = new SimpleForm(['model' => $model10, 'data' => Input::old() ?: Input::all()]);
Validating
if(!$simpleForm->isValid()) {
return Redirect::back()->withErrors($simpleForm->errors())->withInput();
}
Saving your model
$simpleForm->save();
use ModelForm\FormSet;
class SimpleFormSet extends FormSet
{
public function makeForm($model=null)
{
return new SimpleForm(['model'=>$model]);
}
}
Create the empty formset instance:
$simpleFormSet = new SimpleFormSet(['data' => Input::old() ?: Input::all());
Or create a formset filled with a model relation:
$addressFormSet = new AddressFormSet(['relation'=>$customer->addresses(), 'data' => Input::old() ?: Input::all());
The validation and saving of formset is the symmetric with form.
if(!$addressFormSet->isValid()) {
return Redirect::back()->withErrors($addressFormSet->errors())->withInput();
}
$addressFormSet->save();