dev-master
9999999-devEasily create forms, validate and filter data.
MIT
The Requires
- php >=5.3.3
The Development Requires
Wallogit.com
2017 © Pedro Peláez
Easily create forms, validate and filter data.
Easily create forms, validate and filter data., (*1)
Greatly inspired by the awesome Respect/Validation package., (*2)
PS: not ready for production yet., (*3)
"require" : {
"w5n/modelform" : "dev-master"
}
Let's create a model first:, (*4)
<?php
use W5n\DefaultModel;
class ModelFoo extends DefaultModel
{
public function __construct()
{
$this->text('name', 'Nome', true);
$this->date('birth_date')->required()->pastDate();
$this->text('token')->filter('sha1');
}
}
Now that we have our validation model, we can assign values to it:, (*5)
<?php
//...
$m = ModelFoo::create()->populate(
array(
'name' => 'Waldson',
'birth_date' => '19/05/1989',
'token' => 't0k3n'
)
);
//or $m = ModelFoo::create()->populate($_POST);
or..., (*6)
<?php //... $m = new ModelFoo(); $m->name = 'Waldson'; $m->birth_date = '19/05/1989'; $m->token = 't0k3n';
$b->validate(); //true $b->name = ''; $b->validate(); //false $b->getValues(); /* *Array *( * [name] => Waldson * [birth_date] => 1989-05-19 * [token] => 91ba11729e0504813d3fa2ea146c360807aeeee0 *) */
soon..., (*7)
You can use your model to render your form easily (unlike most 'easy forms' packages out there):, (*8)
<?php use W5n\Form\ModelForm; //... $form = ModelForm::create($m); //.. echo $form;
There is also a Boostrap 3 form renderer:, (*9)
<?php
use W5n\Form\FormBootstrap3;
//...
$form = FormBootstrap3::create($m);
$form->setLayout(array(
array('name' => 5, 'birth_date' => 2),
array('token' => 7),
array('submit' => 7)
));
//On your view file...
echo $form;
The primary array values define rows, key/value pairs inside primary values define field/fieldSize. With previous layout you'll get a three rows form: first row with 'name' and 'birth_date' inputs, second row with 'token' input and third row with a submit button. 'submit' key is a extra field automatically added to form object., (*10)
PS: You need to add Bootstrap 3 CSS file to your view file., (*11)
soon..., (*12)
soon..., (*13)
soon..., (*14)
Easily create forms, validate and filter data.
MIT