Я выполняю рефакторинг некоторого кода, который состоит из нескольких запросов на вставку, для этого я конвертирую каждый метод вставки, который выглядит следующим образом:
$code = Yii::$app->db->createCommand()
->insert('code', $codeData
)->execute();
Во что-то вроде этого:
$codeQuery = Yii::$app->db->createCommand()
->insert('code', $codeData);
return $codeQuery;
И в другом методе, который выполняет транзакцию:
$transaction = Yii::$app->db->beginTransaction();
try{
Yii::$app->db->createCommand($codeQuery)->execute();
$transaction->commit();
} catch (\Exception $e) {
$transaction->rollBack();
throw $e;
} catch (\Throwable $e) {
$transaction->rollBack();
throw $e;
}
Но я получил ошибку:
Объект класса yii \ db \ Command не может быть преобразован в строку
Это сообщение: сообщение мне не очень помогло.
Я сомневаюсь, что правильный выбор - переписать каждую команду вставки в что-то, что метод транзакции может выполнить, или преобразование непосредственно моей текущей команды вставки в нечто жизнеспособное.