Простая и тривиальная задача с которой может столкнуться начинающий Yii2 разработчик. Начнем с того, что в зависимости от конфигурации проекта, БД может настраиваться по разному. Возьмем два варианта, которые предоставляет нам см фреймворк:
- basic (простой вариант)
- advanced (продвинутый вариант)
В обоих из вариантов, настройка БД (указание префикса/tablePrefix, имя/username, пароля/password, dsn и прочего) выполняется одинаково. Все зависит от месторасположения файла и «коннектор» класса работы с БД. В нашем примере мы будем рассматривать вариант взаимодействия с базой данных MySQL, как с одной из самых популярных.
Если брать basic, то конфигурационный файл подключения, можно найти по адресу - «/config/db.php».
С advanced вариантом, немного посложнее (на то он и продвинутый, т. е. для крупных проектов). Здесь может быть более одного файла настроек БД (для разделов — backend, frontend, пр.). Все зависит от того, как изначально вы сконфигурировали свое приложение. Так как админка и пользовательская часть зачастую взаимодействуют с одной базой, то файл настроек я обычно помещаю в каталог - «/common/config/db.php». А в конфиге «/common/config/main.php», прописываю доступ к выше упомянутому. Таким образом и в backend, и в frontend, подключение к БД автоматически «подтянется».
В обеих вариантах настройки идентичны и выглядят следующим образом:
return [ 'class' => 'yiidbConnection', 'dsn' => 'mysql:host=127.0.0.1;dbname=my_db_name', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'tablePrefix' => 'my_', ];
Где:
class — класс-коннектор подключения к БД
dsn — хост (host) и название БД (dbname)
username — пользоватеь БД
password — пароль пользователя
charset — кодировка БД
tablePrefix — префикс таблиц (т. е. yii2 table prefix)
Вот и все, не так уж и сложно. Успехов!