private function getDsnAttribute($name, $dsn)
{
if (preg_match('/' . $name . '=([^;]*)/', $dsn, $match)) {
return $match[1];
} else {
return null;
}
}
Использование в любом месте:
$this->getDsnAttribute('dbname', Yii::$app->getDb()->dsn);
Использование в модели:
$this->getDsnAttribute('dbname', static::getDb()->dsn);
$this->getDsnAttribute('dbname', ModelName::getDb()->dsn);
тогда функцию запихнуть в хелпер какой-нибудь, но если вам миграцию написать, тогда зачем вам модель?
В миграции:
$this->getDsnAttribute('dbname', $this->db->dsn);