@EVOSandru6

Почему в yii при create в postgres ругается на уникальность ключа?

Добрый день,

Есть такой экшн регистрации пользователей, я в него попадаю:

public function actionRegistration()
    {
        $model = new Users('registration');
        if(isset($_POST['Users']))
        {
            $model->setAttributes($_POST['Users'], true); 

            if($model->save())
                Yii::app()->user->setFlash('success', 'Вы успешно зарегистрировались!');
            else
            {
                $msg = '';
                foreach($model->getErrors() as $error)
                    $msg .= $error[0];
                Yii::app()->user->setFlash('error', 'Не удалось зарегистрировать Вас <hr>'. $msg);
            }
        }
        $this->redirect(Yii::app()->request->urlReferrer);
    }


Но при сохранении возникает такая ошибка:

CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint "pk_users_id"
DETAIL: Key (id)=(7) already exists.. The SQL statement executed was: INSERT INTO "m_users" ("status", "name", "email", "role_id", "password") VALUES (:yp0, :yp1, :yp2, :yp3, :yp4)


id имеет тип serial NOT NULL .Почему то именно в эту таблицу запись не идет, с остальными все нормально.
  • Вопрос задан
  • 493 просмотра
Пригласить эксперта
Ответы на вопрос 1
@LAV45
Если при миграции ты добавил пачку пользователей тогда нужна сбросить счетчик primary key
// @see \yii\db\pgsql\QueryBuilder::resetSequence()
$sql_resetSequence = Yii::$app->db->queryBuilder->resetSequence($table, $value);
Yii::$app->db->createCommand($sql_resetSequence)->execute();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы