Yii2. Как получить название базы данных?


Сегодня стала очень простая задача для которой, как оказалось нет нативного решения в коробке Yii2. Но, ничего страшного и вариант, как получить название базы данных в Yii2 был найден на просторах Сети.

Всего-то навсего следует написать вот такую функцию:

private function getDsnAttribute($name, $dsn)
    {
        if (preg_match('/' . $name . '=([^;]*)/', $dsn, $match)) {
            return $match[1];
        } else {
            return null;
        }
    }

Вызов, в общем случае, будет выглядеть примерно так:

$this->getDsnAttribute('dbname', Yii::$app->getDb()->dsn);

Как Вы понимаете — первым параметром мы передаем название искомого параметра из строки DSN, а вторым собственно DSN, которую удобно взять из компонента \Yii::$app->db.

, ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *