public function insertRevision(array $args)
{
if (isset($args['id']) === false) {
throw new Exceptions\RequiredDynamicFieldException();
}
$insertParam = [];
$insertParam['dynamicFieldTargetId'] = $args['id'];
$insertParam['revisionId'] = $args['revisionId'];
$insertParam['revisionNo'] = $args['revisionNo'];
foreach ($this->getColumns() as $column) {
$key = camel_case($this->config->get('id') . '_' . $column->name);
if ($this->config->get('required') && (isset($args[$key]) === false || $args[$key] === '')) {
throw new Exceptions\RequiredDynamicFieldException(['key' => $key]);
}
if (isset($args[$key])) {
$insertParam[$key] = $args[$key];
}
}
$this->handler->connection()->table($this->handler->getConfigHandler()->getRevisionTableName($this->config))->insert($insertParam);
}