spotonlive / sl-laravel-zf2-form
ZF2 Forms in Laravel 5.1
Installs: 1 683
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: >=5.4.0
- zendframework/zend-escaper: 2.5.*
- zendframework/zend-form: 2.5.*
- zendframework/zend-i18n: ~2.1
- zendframework/zend-view: 2.5.*
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- laravel/framework: ~5.1
- phpmd/phpmd: 1.4.*
- phpunit/phpunit: ~4.0
- squizlabs/php_codesniffer: 1.5.*
- zendframework/zend-i18n: 2.5.*
This package is not auto-updated.
Last update: 2024-11-09 18:48:48 UTC
README
ZF2 form integration for Laravel 5.1
Installation
Composer
Run $ composer require spotonlive/sl-laravel-zf2-form
Helper
Add the helper/facade to your aliases.
config/app.php
return [ 'aliases' => [ 'Form' => SpotOnLive\LaravelZf2Form\Facades\Helpers\FormHelperFacade::class, ] ];
Example
Form
<?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; } }
View
@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
Helper methods
- openTag
- closeTag
- button
- captcha
- checkbox
- collection
- color
- date
- dateSelect
- dateTime
- dateTimeLocal
- dateTimeSelect
- element
- elementErrors
- file
- hidden
- image
- input
- label
- month
- monthSelect
- multiCheckbox
- number
- password
- radio
- range
- reset
- row
- search
- select
- submit
- tel
- text
- textarea
- time
- url
- week
Documentation
Documentation for Zend Framework 2 forms: http://framework.zend.com/manual/current/en/modules/zend.form.elements.html