composer require laasti/form
Forms have groups containing multiple fields.
$form = new Laasti\Form\Form($data, $errors, $rules);
$form->setMethod('post'); //Defaults to post
$form->setAction('url');
$form->setAttributes([/*html attributes*/]);
$form->addField('text', 'field', 'Label', [/*choices*/], 'group', [/*input attributes*/], [/*row attributes*/]);
$form->removeField('field');
$form->removeGroup('group');
$form->setGroup('field', 'group');
$form->setLabel('field', 'Label');
$form->setType('field', 'type');
$form->setAttributes('field', [/*attributes*/]);
$form->setContainerAttributes('field', [/*attributes*/]);
$form->setData([]);
$form->setErrors([]);
$form->setRules([]);
$form->setGroupsLayout([
'top',
'main' => ['column1', 'column2'],
'secondary' => ['side', 'wide'],
'multi-level' => [
'subsection' => ['sub-column1', 'sub-column2'],
'subsection2'
]
]);
$form->defineGroup('group', 'Title', [/*attributes*/]);
Then in your view:
$form->getAction(); //Get form action attribute
$form->getMethod(); //Get form method
$form->getFormAttributes(); //Get form attributes
$form->getAllFields(); //All fields without groups
$form->getFields(); //Just fields without groups
$group = array_shift($form->getGroups()); //Array of first level groups
$group->getLabel();
$group->getAttributes();
$group->getGroups(); //Array of subgroups
$field = array_shift($group->getFields()); //Array of fields in group
$field->getLabel();
$field->getName();
$field->getGroup();
$field->getChoices();
$field->getAttributes();
$field->getContainerAttributes();
//OR you can use magic properties instead of lengthy getters in views
$field->choices;
$field->containerAttributes;
//There are some magic properties as well
$field->isRequired;//Checks if required exists in $field->attributes
$field->is{Name};//If you want to identify a field by its name
$field->is{Type};//If you want to check a field's type
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
See CHANGELOG.md for more information.
Author: Sonia Marquette (@nebulousGirl)
Released under the MIT License. See LICENSE.txt file.