2017-01-06 10 views
0

Я работаю на ZEND framwork 2Zend Framework 2 - Как сохранить значение в полях формы? при многократном обновлении записи?

Я создал один модуль с двумя полями 1) test1 2) Test2

Структура базы данных для этого:

  1. дб имя: zend_test_db
  2. db поля: config_key, config_value

Я хочу, чтобы хранить как config_key = test1key и config_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); 
    } 

Над кодом отлично работает на Добавление полей. Я могу вставить эти поля и сохранить как ключ и значение

Но я не могу это обновить.

Надежда его ясно

Где я делаю ошибку?

ответ

2

Я не могу комментировать, поскольку у меня есть репутация менее 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 Album. Вот ссылка https://framework.zend.com/manual/2.2/en/user-guide/forms-and-actions.html

Если это не проблема, сообщите мне, чтобы я мог помочь вам в этом.

+0

Спасибо за его работу :) –

+1

Рад узнать, что :) –

 Смежные вопросы

  • Нет связанных вопросов^_^