Node сохранение формы во внешнюю таблицу
Рекомендованные сообщения
Сейчас на странице 0
- Нет пользователей, просматривающих эту страницу.
A better way to browse. Learn more.
A full-screen app on your home screen with push notifications, badges and more.
Здравствуйте. имею две таблицы:
wc3_mapcfgs - основная для Node, используется для добавления, редактирования форм: http://prntscr.com/ng4iwq
wc3_mapcfgs_configuration - настройки, которые выбирает хост бот на C++: http://prntscr.com/ng4jbg
Задача: связать формы и добавление/изменение из них настроек в таблицу wc3_mapcfgs_configuration.
Я всё реализовал кроме сохранения и изменения настроек:
public function form( &$form ) { $form->add( new \IPS\Helpers\Form\Text( 'mapcfg_name', $this->mapcfg_name, TRUE, array(), NULL, NULL, NULL ) ); $form->add( new \IPS\Helpers\Form\Node( 'map_id', isset($this->map_id) ? $this->map_id : NULL, TRUE, array( 'class' => 'IPS\wc3\Map' ) ) ); } public function formatFormValues( $values ) { isset($values['map_id']) ? $values['map_id'] = $values['map_id']->_data['id'] : NULL; $this->updateAsSettings($values); return $values; } public function updateAsSettings( $values ) { if ( isset( $values['map_id'] ) ) { $map = \IPS\wc3\Map::load( $values['map_id'] ); $values['map_localpath'] = $map->_data['map_name']; $values['map_path'] = "Maps\\Download\\" . $map->_data['map_name']; unset($values['map_id']); } if ( isset( $values['mapcfg_name'] ) ) { isset($values['mapcfg_name']) ? $cfg_name = $values['mapcfg_name'] : NULL; unset($values['mapcfg_name']); } }updateAsSettings() - функция, которая разбирает значения для сохранения, вставки в таблицу: wc3_mapcfgs_configuration
Два foreach, для обновления и вставки записей, оно работает всё в порядке:
foreach ($values as $key => $value) { \IPS\Db::i()->update( static::$cfgTable, array( 'cfg_value' => $value ), array( 'cfg_name=? AND cfg_key=?', $cfg_name, $key ) ); } foreach ($values as $key => $value) { \IPS\Db::i()->insert( static::$cfgTable, array( 'cfg_name' => $cfg_name, 'cfg_key' => $key, 'cfg_value' => $value ) ); }Вопрос в следующем: Как правильно реализовать вставку, обновление полей?
Изменено пользователем TemKa_SD