2011-01-29 22 views
5

Tengo un formulario Zend para agregar algo a la base de datos. Y luego quiero usar este formulario para editar lo que agregué al databese. ¿Hay alguna posibilidad de utilizar este formulario (llenarlo de base de datos y mostrarlo ???) tengo esto en mi controlador:ZEND, Editar formulario

public function editAction() { 

    if (Zend_Auth::getInstance()->hasIdentity()) { 
     try { 
      $form = new Application_Form_NewStory(); 
      $request = $this->getRequest(); 
      $story = new Application_Model_DbTable_Story(); 
      $result = $story->find($request->getParam('id')); 

      // $values = array(
      //  'title' => $result->title, 
      //  'story' => $result->story, 
      //); 

      if ($this->getRequest()->isPost()) { 
       if ($form->isValid($request->getPost())) { 
        $data = array(
         'title' => $form->getValue("title"), 
         'story' => $form->getValue("story"), 
        ); 
        $where = array(
         'id' => $request->getParam('id'), 
        ); 
        $story->update($data, $where); 
       } 
      } 
      $this->view->form = $form; 
      $this->view->titleS= $result->title; 
      $this->view->storyS= $result->story; 
     } catch (Exception $e) { 
      echo $e; 
     } 
    } else { 
     $this->_helper->redirector->goToRoute(array(
      'controller' => 'auth', 
      'action' => 'index' 
     )); 
    } 
} 

En mi punto de vista:

<?php 
try 
{ 
$tmp = $this->form->setAction($this->url()); 
//$tmp->titleS=$this->title; 
//$tmp->storyS=$this->story; 

//echo $tmp->title = "aaaaa"; 
} 
catch(Exception $e) 
{ 
    echo $e; 
} 

Y cuando intento cambiar algo en esta vista me refiero a dar cualquier valor diferente a NULL Tengo el error de que no puedo hacerlo así que ¿hay alguna posibilidad de reutilizar este formulario? ¿O no?

Gracias!

Respuesta

11

Zend_Form tiene el método poblar(), que establece los valores de la forma en función de los datos de la matriz. Así que acaba de hacer:

$form->populate($result->current()->toArray()); 

y la forma se rellenará basado en claves de matriz.

+1

Sí Funciona! ¡Muchas gracias! – canimbenim

Cuestiones relacionadas