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

Zend Framework 2 - How to keep value in form fields ? on multiple record update?

我正在研究 zend framwork 2

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

这个的数据库结构:

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

I want to store like config_key = test1key and config_value : textbox enter value

一次存储多条记录。

下面是我的控制器函数:

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);
    }

以上代码在添加字段时运行良好。我能够插入这些字段并存储为键和值

但是我无法更新这个。

希望一切顺利

我哪里出错了?

我无法发表评论,因为我的声誉低于 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 框架相册模块。这是 link https://framework.zend.com/manual/2.2/en/user-guide/forms-and-actions.html

如果这不是问题所在,请告诉我,以便我可以帮助您解决这个问题。