Название базы

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Alex8552
Сообщения: 36
Зарегистрирован: 2014.10.07, 15:13

Название базы

Сообщение Alex8552 »

Создал модель для работы с таблицей типо:

Код: Выделить всё

public static function tableName()
    {   
        
        return 'имя_базы.имя_таблицы';
    }
];
Пытаюсь вытянуть имя базы:

Код: Выделить всё

$schema=Yii::$app->db->schema;
Продампил:

Код: Выделить всё

object(yii\db\TableSchema)#83 (7) { ["schemaName"]=> string(11) "20141010001" ["name"]=> string(7) "clients" ["fullName"]=> string(19) "20141010001.clients"

$db=$schema->schemaName ;
Выдает ошибку. Подскажите пожалуйста что я не так делаю
astronin
Сообщения: 606
Зарегистрирован: 2012.01.30, 17:46

Re: Название базы

Сообщение astronin »

просто

Код: Выделить всё

public static function tableName()
    {   
        
        return 'имя_таблицы';
    }
];
Alex8552
Сообщения: 36
Зарегистрирован: 2014.10.07, 15:13

Re: Название базы

Сообщение Alex8552 »

Опишу лучше всю ситуацию,понятнее будет.

После регистрации пользователя под него создается отдельная база,налету создаю коннект к ней(и вношу дефолтные таблицы с данными) в одной моделе

Код: Выделить всё

$connection = new \yii\db\Connection([
           //params
            ]);
            $connection->open();
дальше редирект на страничку где пользователь работает уже с этой(созданной) базой.
Это уже другая модель в которую мне надо передать либо данные с предыдущей(не могу понять как это сделать) либо из текущего коннекта вытянуть имя базы.
Выбрал второй вариант,т.к. он показался легче в реализации.
В Yii новичек,прошу не судить строго
astronin
Сообщения: 606
Зарегистрирован: 2012.01.30, 17:46

Re: Название базы

Сообщение astronin »

для этого надо на лету менять настройки компонента конекта к базе
скорей всего для этого вам надо завести новую таблицу в вашей главной базе, где будут прописываться настройки к подбазам
ваш главный компонент $db будет смотреть в главную базу
а еще создать лучше другой компонент $dbChild, который уже динамически менять в зависимости от пользователя.
Ответить