|
@@ -24,23 +24,31 @@ class Save extends Action
|
|
|
if ($group->g_id < 1) {
|
|
|
throw new RuntimeException('The model does not have ID');
|
|
|
}
|
|
|
+
|
|
|
$modified = $group->getModified();
|
|
|
+
|
|
|
if (empty($modified)) {
|
|
|
return $group;
|
|
|
}
|
|
|
+
|
|
|
$values = $group->getAttrs();
|
|
|
$fileds = $this->c->dbMap->groups;
|
|
|
+
|
|
|
$set = $vars = [];
|
|
|
+
|
|
|
foreach ($modified as $name) {
|
|
|
if (! isset($fileds[$name])) {
|
|
|
continue;
|
|
|
}
|
|
|
+
|
|
|
$vars[] = $values[$name];
|
|
|
$set[] = $name . '=?' . $fileds[$name];
|
|
|
}
|
|
|
+
|
|
|
if (empty($set)) {
|
|
|
return $group;
|
|
|
}
|
|
|
+
|
|
|
$vars[] = $group->g_id;
|
|
|
|
|
|
$set = \implode(', ', $set);
|
|
@@ -49,6 +57,7 @@ class Save extends Action
|
|
|
WHERE g_id=?i";
|
|
|
|
|
|
$this->c->DB->exec($query, $vars);
|
|
|
+
|
|
|
$group->resModified();
|
|
|
|
|
|
// сбросить кеш для гостя
|
|
@@ -67,27 +76,38 @@ class Save extends Action
|
|
|
if (null !== $group->g_id) {
|
|
|
throw new RuntimeException('The model has ID');
|
|
|
}
|
|
|
+
|
|
|
$attrs = $group->getAttrs();
|
|
|
$fileds = $this->c->dbMap->groups;
|
|
|
+
|
|
|
$set = $set2 = $vars = [];
|
|
|
+
|
|
|
foreach ($attrs as $key => $value) {
|
|
|
- if (! isset($fileds[$key])) {
|
|
|
+ if (
|
|
|
+ ! isset($fileds[$key])
|
|
|
+ || 'g_id' === $key
|
|
|
+ ) {
|
|
|
continue;
|
|
|
}
|
|
|
+
|
|
|
$vars[] = $value;
|
|
|
$set[] = $key;
|
|
|
$set2[] = '?' . $fileds[$key];
|
|
|
}
|
|
|
+
|
|
|
if (empty($set)) {
|
|
|
throw new RuntimeException('The model is empty');
|
|
|
}
|
|
|
+
|
|
|
$set = \implode(', ', $set);
|
|
|
$set2 = \implode(', ', $set2);
|
|
|
$query = "INSERT INTO ::groups ({$set})
|
|
|
VALUES ({$set2})";
|
|
|
|
|
|
$this->c->DB->exec($query, $vars);
|
|
|
+
|
|
|
$group->g_id = (int) $this->c->DB->lastInsertId();
|
|
|
+
|
|
|
$group->resModified();
|
|
|
|
|
|
return $group->g_id;
|