Package Data | |
---|---|
Maintainer Username: | spotonlive |
Maintainer Contact: | nikolaj.lovenhardt@gmail.com (Nikolaj Petersen) |
Package Create Date: | 2015-09-21 |
Package Last Update: | 2016-01-04 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-11 15:16:43 |
Package Statistics | |
---|---|
Total Downloads: | 1,683 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 1 |
Total Watchers: | 3 |
Total Forks: | 0 |
Total Open Issues: | 0 |
ZF2 form integration for Laravel 5.1
Run $ composer require spotonlive/sl-laravel-zf2-form
Add the helper/facade to your aliases.
config/app.php
return [
'aliases' => [
'Form' => SpotOnLive\LaravelZf2Form\Facades\Helpers\FormHelperFacade::class,
]
];
<?php
namespace App\Forms\Customer;
use Zend\Form\Form;
use App\Entities\Country;
use App\Entities\Customer;
use Zend\Form\Element\Text;
use Zend\InputFilter\FileInput;
use Zend\InputFilter\InputFilter;
use Zend\InputFilter\InputFilterInterface;
use DoctrineModule\Form\Element\ObjectSelect;
use Doctrine\Common\Persistence\ObjectManager;
use Zend\InputFilter\InputFilterAwareInterface;
use DoctrineModule\Stdlib\Hydrator\DoctrineObject as DoctrineHydrator;
class CreateForm extends Form
{
/** @var ObjectManager */
protected $objectManager;
protected $inputFilter;
public function __construct($name = null, ObjectManager $objectManager)
{
$this->objectManager = $objectManager;
$this->setHydrator(new DoctrineHydrator($objectManager, Customer::class));
$this->setObject(new Customer());
parent::__construct('create-customer');
$this->add([
'name' => 'name',
'type' => Text::class,
'options' => [
'label' => 'Name',
],
'attributes' => [
'class' => 'form-control',
'required' => true,
],
]);
$this->add([
'name' => 'country',
'type' => ObjectSelect::class,
'options' => [
'type' => 'select',
'label' => 'Country',
'object_manager' => $objectManager,
'target_class' => Country::class,
'label_generator' => function(Country $country) {
return sprintf(
'%s (%s)',
$country->getName(),
$country->getCode()
);
},
'empty_option' => '-- Select country --',
],
'attributes' => [
'class' => 'form-control',
'required' => true,
],
]);
}
public function getInputFilter()
{
if (!$this->inputFilter) {
$inputFilter = new InputFilter();
$inputFilter->add([
'name' => 'name',
'required' => true,
'filters' => [
['name' => 'StripTags'],
['name' => 'StringTrim'],
],
'validators' => [
[
'name' => 'StringLength',
'options' => [
'encoding' => 'UTF-8',
'min' => 1,
'max' => 255,
],
],
],
]);
$inputFilter->add([
'name' => 'country',
'required' => true,
]);
$this->inputFilter = $inputFilter;
}
return $this->inputFilter;
}
}
@extends('layout')
@section('content')
<h1>{{_('Form')}}</h1>
{!! Form::openTag($form) !!}
{!! csrf_field() !!}
{!! Form::row($form->get('name')) !!}
{!! Form::row($form->get('country')) !!}
{!! Form::button($form->get('submit')) !!}
{!! Form::closeTag() !!}
@endsection
Documentation for Zend Framework 2 forms: http://framework.zend.com/manual/current/en/modules/zend.form.elements.html