Zend Framework 2 - 如何在表单字段中保持价值?在多个记录更新?
Zend Framework 2 - How to keep value in form fields ? on multiple record update?
我正在研究 zend framwork 2
我创建了一个包含两个字段的模块
1)测试1
2) 测试2
这个的数据库结构:
- 数据库名称 : zend_test_db
- 数据库字段 : 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
如果这不是问题所在,请告诉我,以便我可以帮助您解决这个问题。
我正在研究 zend framwork 2
我创建了一个包含两个字段的模块 1)测试1 2) 测试2
这个的数据库结构:
- 数据库名称 : zend_test_db
- 数据库字段 : 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
如果这不是问题所在,请告诉我,以便我可以帮助您解决这个问题。