代码之家  ›  专栏  ›  技术社区  ›  Manthan Dave

Zend Framework 2-如何在表单字段中保留值?多记录更新?

  •  0
  • Manthan Dave  · 技术社区  · 7 年前

    我正在开发zend framwork 2

    我创建了一个包含两个字段的模块 1) 测试1 2) 测试2

    此数据库结构:

    1. 数据库名称 :zend_test_db
    2. 数据库字段 :config_key,config_value

    我想要像config_key=test1key和config_value:textbox这样存储 输入值

    一次存储多个记录。

    以下是我的控制器功能:

    public function indexAction()
        {
           $form = new ConfigurationForm();
           $form->get('submit')->setValue('Save Settings');
           $form->get('test1key')->setValue('test1key');
           $form->get('test2key')->setValue('test2key');
    
     $request = $this->getRequest();
             if ($request->isPost()) {
                 $configuration = new Configuration();
                 $form->setInputFilter($configuration->getInputFilter());
                 $form->setData($request->getPost());
    
                 if ($form->isValid()) {
                     $configuration->exchangeArray($form->getData());     
                     $this->getConfigurationTable()->saveConfiguration($configuration);
    
                     // Redirect to list of configuration
                     return $this->redirect()->toRoute('configuration');
                 }
             }
             return array('form' => $form);
        }
    

    上面的代码可以很好地处理添加字段。我可以插入这些字段并将其存储为键和值

    但我无法更新这个。

    希望是清楚的

    我在哪里犯错误?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Ram Sharma Stanimir Stoyanov    7 年前

    我无法发表评论,因为我的声誉低于50。我想你是想说你可以在数据库中插入数据,但你不能更新它。

    这是因为您每次都在创建新模型。

    $configuration = new Configuration();
    

    您应该使用id参数初始化它。

    $id = (int) $this->params()->fromRoute('id', 0);
    if (!$id) {
             return $this->redirect()->toRoute('configuration', array(
                     'action' => 'add'
                 ));
    }
    
    
    try {
         $configuration = $this->getConfigurationTable()->getConfiguration($id);
     }
      catch (\Exception $ex) {
           return $this->redirect()->toRoute('configuration', array(
                    'action' => 'index'
              ));
      }
    

    使用此功能,您也可以更新数据。有关更多参考信息,请查看zend framework相册模块。这是链接 https://framework.zend.com/manual/2.2/en/user-guide/forms-and-actions.html

    如果这不是问题所在,请让我知道,以便我可以在这方面帮助您。