Ergebnis 1 bis 5 von 5

Thema: ZF2 Form Komponente in anderem Framework benutzen

  1. #1
    Neuer Benutzer Avatar von szsoftware
    Registriert seit
    16.11.2010
    Beiträge
    11
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard ZF2 Form Komponente in anderem Framework benutzen

    Servus die Damen,

    ich habe es endlich geschafft im F3 Framework ein ZF2-Form über die Annotations in der DoctrineEntity zu konfigurieren aber scheitere daran es in der View auszugeben. Ein var_dump() zeigt mir das konfigurierte Form-Objekt.
    Ich vermisse die Funktionen $form->render($view) oder Ähnliches.

    Wie rendere ich denn nun mein schönes ZF2 Form?

    Danke und Gruß,
    Sven

  2. #2
    Neuer Benutzer
    Registriert seit
    29.04.2012
    Beiträge
    10
    Thanks
    3
    Thanked 3 Times in 3 Posts

    Standard

    Ich vermisse die Funktionen $form->render($view) oder Ähnliches.
    Im ZF2 geht's wohl nicht mehr ganz so einfach - Form View Helpers — Zend Framework 2 2.0.0rc3 documentation
    Grüße
    Nico

  3. #3
    Neuer Benutzer Avatar von szsoftware
    Registriert seit
    16.11.2010
    Beiträge
    11
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Zitat Zitat von T!P-TOP Beitrag anzeigen
    Im ZF2 geht's wohl nicht mehr ganz so einfach - Form View Helpers — Zend Framework 2 2.0.0rc3 documentation
    Aber es geht:

    PHP-Code:
        function just_a_f3_controller_function()    {
            
    $evv      = new Entities\EVV();
            
    $builder = new Zend\Form\Annotation\AnnotationBuilder();
            
    $zf2Form    $builder->createForm($evv);
            
    $zf2Form->bind($evv);
            
    // $zf2Form->setData($dataFromSomewhere);
            
    $renderer = new Zend\View\Renderer\PhpRenderer();
            
    $renderer->setHelperPluginManager(new Zend\View\HelperPluginManager(new Zend\Form\View\HelperConfig()));
            
    $formView = new Zend\Form\View\Helper\Form();
            
    $formCollection = new Zend\Form\View\Helper\FormCollection();
            
    $formCollection->setView($renderer);
            
    $renderedForm  $formView->openTag($zf2Form);
            
    $renderedForm .= $formCollection->render($zf2Form);
            
    $renderedForm .= $formView->closeTag();
            
    $this->set('form',$renderedForm);
            
    $this->set('template','overview');


  4. #4
    Neuer Benutzer Avatar von szsoftware
    Registriert seit
    16.11.2010
    Beiträge
    11
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    BTW., da gib es jetzt den freenode channel #zftalk.2 für :-)

  5. #5
    Neuer Benutzer Avatar von szsoftware
    Registriert seit
    16.11.2010
    Beiträge
    11
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    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!

Ähnliche Themen

  1. Welche ZF Komponente nutzt ihr am häufigsten?
    Von deetee im Forum PHP X-Talk
    Antworten: 13
    Letzter Beitrag: 24.03.2011, 14:36
  2. Nur bestimmte Komponente verwenden
    Von burgard01 im Forum Installation & Konfiguration
    Antworten: 5
    Letzter Beitrag: 22.10.2010, 18:41
  3. Nur einzelne Komponente nutzen
    Von Yanko im Forum Einsteigerfragen
    Antworten: 2
    Letzter Beitrag: 26.02.2010, 13:32
  4. Komponente für Image Manipulation
    Von Xerrez im Forum Einsteigerfragen
    Antworten: 1
    Letzter Beitrag: 06.05.2009, 15:29
  5. Ebay Komponente
    Von deetee im Forum PHP X-Talk
    Antworten: 4
    Letzter Beitrag: 28.02.2008, 20:49

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •