Fix Group\Save

INSERT query contained g_id = NULL.
This commit is contained in:
Visman 2021-12-12 12:03:23 +07:00
parent 87ce20a3af
commit 2338592f55

View file

@ -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;