Fix Group\Save
INSERT query contained g_id = NULL.
This commit is contained in:
parent
87ce20a3af
commit
2338592f55
1 changed files with 21 additions and 1 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue