Смотри, можно в модель прописать отсутствие параметра.
Вот пример
public function editSetting($key, $value, $path, $store_id=0)
{
if(!is_array($value))
{
$this->db->query("INSERT INTO `".DB_PREFIX."setting` SET `store_id`='".(int)$store_id."', `code`='supertools_seo', `key`='".$this->db->escape($key)."', `value`='".$this->db->escape(json_encode(array($value=>$path), true))."', serialized='0'");
}
else
{
$custom_tabs=json_decode($this->getParam('supertools_seo_custom_tabs'));
foreach($custom_tabs as $_key=>$_val)
{
$params[]=array($_key=>$_val);
}
$params[]=array($value[0]=>$path);
$this->db->query("UPDATE `".DB_PREFIX."setting` SET `value`='".$this->db->escape(json_encode($params))."' WHERE `key`='".$this->db->escape($key)."' AND store_id='".(int)$store_id."'");
}
}
Может не совсем удобно для понимания...
Поясню.
Ты передаешь в функцию форму, а она (функция) должна сделать разбор формы, то есть в запрос к БД включить только те поля, которые имеются. Но если в таблице предустановленно NOT NULL, тогда необходимо создать условие, что если параметр отсутствует, добавлять значение по-умолчанию. Или в таблице указать значение по-умолчанию.