Доброго времени суток! У меня есть action "actionAddSuperAdmin" в нём я создаю пользователя в одной базе данных и на основе его данных создаю ему его, так сказать, базу данных и если она успешно создана, то я применяю к ней миграции, вот кусок кода:
try {
$sql = Yii::$app->db->createCommand('CREATE DATABASE ' . $db_name)->execute();
if ($sql) {
\Yii::$app->runAction('user/migrate', ['db_name' => $db_name]);
}
} catch (Exception $e) {
return $this->asJson(['success' => false, 'errors' => json_encode($e)]);
}
return $this->asJson($response);
Вот сам метод, который вызывается после успешного создания базы:
public function actionMigrate($db_name)
{
// https://github.com/yiisoft/yii2/issues/1764#issuecomment-42436905
$oldApp = \Yii::$app;
new \yii\console\Application([
'id' => 'Command runner',
'basePath' => '@console',
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=' . $db_name . '',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
],
]);
\Yii::$app->runAction('migrate/up',
['migrationPath' => '@console/migrations', 'interactive' => false]);
\Yii::$app = $oldApp;
}
Но после его выполнения ответ от сервера не тот что мне надо:
> create table {{%user}} ... done (time: 0.366s) > create index idx-user-subdomain on user (subdomain) ... done (time: 0.114s) ... и так все таблицы
И в конце:
Exception 'yii\web\HeadersAlreadySentException' with message 'Headers already sent in E:\OSPanel\domains\order.loc\vendor\yiisoft\yii2\db\Migration.php on line 577.' in E:\OSPanel\domains\order.loc\vendor\yiisoft\yii2\web\Response.php:366 Stack trace: #0 E:\OSPanel\domains\order.loc\vendor\yiisoft\yii2\web\Response.php(339): yii\web\Response->sendHeaders() #1 E:\OSPanel\domains\order.loc\vendor\yiisoft\yii2\base\Application.php(392): yii\web\Response->send() #2 E:\OSPanel\domains\order.loc\frontend\web\index.php(38): yii\base\Application->run() #3 {main}
Что сделать чтобы этого вывода не было, а был тот что идёт дальше по коду (то есть "return $this->asJson($response);")?
Заранее спасибо за ответы!