У меня есть контроллер, где мне нужно сделать недействительным токен и создать новый токен.Yii ActiveRecord Одновременное обновление и вставка не работает без ошибок
Контроллер код снимок выглядит примерно так:
function __regenerate_token($t)
{
if($token = Token::find()->where('token = :t' , ['t'=>$t])->one())
{
$token->expired = true;
$token->save(); // ->save(false);
}
$newtoken = new Token();
$newtoken->attributes = [
'token'=> strtolower(trim(\com_create_guid(), '{}')),
'expiry_at' => strtotime("+10 minutes"),
];
$newtoken->save(false);
return $newtoken;
}
Теперь Что происходит это - обновление() также не возвращает истинных & без ошибок. То же самое со вставкой. В индивидуальном порядке они работают нормально. Но если я назову их им так, как есть, это терпит неудачу.
Основополагающий стол - innoDB. Я попытался обернуть обновление & вставить внутри транзакции, но такую же проблему.
С уважением