Ok, habe eine kleine Helper Klasse geschrieben.
Aufruf derer Funktionen z.B. so:
Code:
$evv = new Entities\EVV();
$builder = new Zend\Form\Annotation\AnnotationBuilder();
$zf2Form = $builder->createForm($evv);
$zf2Form->bind($evv);
$zf2Form->add(new Zend\Form\Element\Submit('submit'));
// $zf2Form->setData($dataFromSomewhere);
$formViewHelper = new \SZ\ZF2FormViewHelper();
$this->set('form',$formViewHelper->renderForm($zf2Form));
$this->set('template','overview'); Helper Klasse:
Code:
<?php
namespace SZ;
/**
* Description of ZF2FormViewHelper
*
* @author sven
*/
class ZF2FormViewHelper extends \Zend\Form\View\HelperConfig {
protected $renderer;
protected $helperConfig;
public function __construct() {
$this->renderer = new \Zend\View\Renderer\PhpRenderer();
$this->helperConfig = new \Zend\Form\View\HelperConfig();
$this->renderer->setHelperPluginManager(new \Zend\View\HelperPluginManager($this->helperConfig));
}
public function __call($name, $arguments) {
if(isset($this->invokables[$name]))
{
$object = new $this->invokables[$name];
switch($name) {
case 'formcollection' : $object->setView($this->renderer);
break;
}
return $object;
}
else
throw new \Exception('Invokable View Helper not found (' . $name . ').
List of invokables: ' . implode(", ", array_keys ($this->invokables)));
}
public function renderForm($formObject)
{
$strings[] = $this->form()->openTag($formObject);
$strings[] = $this->formcollection()->render($formObject);
$strings[] = $this->form()->closeTag();
return implode("\n",$strings);
}
} Viel Spass damit!
Lesezeichen