Mungkin, untuk menggunakan beberapa database di Yii 2 kita sudah tidak bingung. Cukup di konfigurasi komponen tambahkan satu database lagi. Contoh:


$config = [
    'name'=>'Nama Aplikasi Anda',
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'components' => [
        //komponen-komponen yang lain di sini
        'db' => require(__DIR__ . '/db.php'),
        'dbku'=> require(__DIR__ . '/dbkedua.php'),
    ],
    'params' => $params,
];

Berikutnya, yang menjadi masalah adalah bagaimana Generator Gii bisa secara otomatis mengenali daftar tabel pada database kita. Sebenarnya cara yang mudah adalah dengan memberi nilai komponen db sesuai dengan database yang akan digunakan untuk Gii. Tapi, sementara waktu Anda mengganti nilai db, pasti beberapa aplikasi yang menggunakan db utama tidak dapat bekerja dengan baik.

Jadi?

Begini saja.

Salin file vendor/yii-soft/yii2-gii/generators/model/Generator.php menjadi file vendor/yii-soft/yii2-gii/generators/model/Generatorku.php.

Selanjutnya, modifikasi sedikit isi dari file Generatorku.php tersebut, yakni pada nama Class


class Generatorku extends \yii\gii\Generator
{
  //dst...

dan nonaktifkan fungsi stickyAttributes() menjadi seperti berikut:

    /**
     * @inheritdoc
     */
    // public function stickyAttributes()
    // {
    //     return array_merge(parent::stickyAttributes(), ['ns', 'db', 'baseClass', 'generateRelations', 'generateLabelsFromComments']);
    // }

Langkah berikutnya adalah modifikasi konfigurasi pada file config/web.php seperti berikut ini:

if (YII_ENV_DEV) {
    // configuration adjustments for 'dev' environment
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = 'yii\debug\Module';

    $config['bootstrap'][] = 'gii';
    // $config['modules']['gii'] = 'yii\gii\Module';
    $config['modules']['gii'] =['class'=>'yii\gii\Module',
        'generators'=>[
            'modelku' => ['class' => 'yii\gii\generators\model\Generatorku',
                'db'=>'dbku', //yang ini nih, silakan disesuaikan
            ],
        ]
    ];

}

Itu saja, semoga bermanfaat!

Oiya, hasilnya seperti ini (tabel yang muncul sesuai databasenya)

gii_custom

Advertisements