Simple form with zendframework/zend-inputfilter
and adamwathan/form
.
The preferred way to install this extension is through composer.
Either run
$ php composer.phar require bupy7/zf-form "*"
or add
"bupy7/zf-form": "*"
to the require section of your composer.json file.
Form:
// Application/src/Form/SignInForm.php
use Bupy7\Form\FormAbstract;
class SignInForm extends FormAbstract
{
protected function inputs()
{
return [
[
'name' => 'email',
'required' => true,
'validators' => [
[
'name' => 'EmailAddress',
],
],
],
[
'name' => 'password',
'required' => true,
],
];
}
}
View:
// Application/view/auth/signin.phtml
<?php $formBuilder = $this->formBuilder($this->signInForm); ?>
<?= $formBuilder->open()->action($this->url('signin'))->addClass('form-horizontal'); ?>
<div class="form-group required<?= $formBuilder->hasError('email') ? ' has-error' : ''; ?>">
<?= $formBuilder->label('Email')->forId('email')->addClass('control-label col-md-2'); ?>
<div class="col-md-4">
<?= $formBuilder->email('email')->addClass('form-control'); ?>
<div class="help-block help-block-error">
<?= $formBuilder->getError('email'); ?>
</div>
</div>
</div>
<div class="form-group required<?= $formBuilder->hasError('password') ? ' has-error' : ''; ?>">
<?= $formBuilder->label('Password')->forId('password')->addClass('control-label col-md-2'); ?>
<div class="col-md-4">
<?= $formBuilder->password('password')->addClass('form-control'); ?>
<div class="help-block help-block-error">
<?= $formBuilder->getError('password'); ?>
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-4 col-md-offset-2">
<?= $formBuilder->button('Signin')->attribute('type', 'submit')->addClass('btn btn-primary'); ?>
</div>
</div>
<?= $formBuilder->close(); ?>
Controller:
// Application/src/Controller/AuthController.php
use Application/Form/SignInForm;
public function signinAction()
{
$signInForm = new SignInForm;
if ($this->getRequest()->isPost()) {
$signInForm->setValues($this->getRequest()->getPost());
if ($signInForm->isValid()) {
$data = $signInForm->getValues();
// authentication...
// $result = $auth->authenticate();
if ($result->isValid()) {
// some actions
}
}
}
return new ViewModel([
'signInForm' => $signInForm,
]);
}
zf-form is released under the BSD 3-Clause License.