2017-07-19 1 views

Antwort

1

Sie haben mehrere Möglichkeiten, z. Verwendung einer getrennten Konfiguration in app/config/main.php zB eine spezifische dbMyMod zu Komponente Config

return [ 
// ... 
'components' => [ 
    // ... 
    'db' => [ 
     'class' => 'yii\db\Connection', 
     'dsn' => 'mysql:host=localhost;dbname=example', 
     'username' => 'root', 
     'password' => '', 
     'charset' => 'utf8', 
    ], 
    'dbMyMod ' => [ 
     'class' => 'yii\db\Connection', 
     'dsn' => 'mysql:host=hostForMudle;dbname=module_db_name', 
     'username' => 'user_module_name', 
     'password' => 'password', 
     'charset' => 'utf8', 
    ], 

], 

oder eine Art und Weise, die nicht in einer statischen Konfiguration erfordern app/confing

Zugabe auf eine basieren könnte Modul-Funktion, die eine richtige DB-Verbindung

public function myModuleDbCon() 
{ 
    $myDbCon = new yii\db\Connection([ 
      'dsn' => 'mysql:host=localhost;dbname=example', 
      'username' => 'root', 
      'password' => '', 
      'charset' => 'utf8', 
    ]); 
    return myDbConn; 

} 

dann in Ihrer Rückkehr Modul das Modul DB-Verbindung

retrive können 210

.

$command = $aDbConn->createCommand('SELECT * FROM myTable'); 
$result= $command->queryAll(); 
+0

Dank, ist der zweite Weg besser für meinen Zweck, nur eine Frage mehr: nachdem einige über mein Problem googeln ich das Modell 'getDb()' Funktion (bezogen auf diese Frage [link zu hinterfragen] gefunden (https : //stackoverflow.com/questions/27254540/multiple-database-connections-and-yii-2-0)), aber wenn ich eine db-Komponente in der Modulkonfiguration eingestellt habe, wie ich von einem Modell auf diese Komponente zugreifen kann, mehr Generisch in einem Modell eines Moduls Wie kann ich auf die Modulinstanz zugreifen? Wenn ich den Namen des Moduls in der Konfiguration verwende, muss der Name immer den gleichen Namen haben (das Modul, das auf mehreren Seiten geteilt werden soll) – MarBer

+0

Sie können auf ein Komponet mit 'Yii :: $ app-> your_compenent_name' .. und zugreifen Sie können auf den Parameter als Schlüssel - Wert - Array zugreifen (oder als Objekt .. ich erinnere mich nicht jetzt)) .. aber praktisch ist das gleiche wie in myModuleDbCon .. ändern Sie einfach die Stelle, wo Sie den Parameter zuweisen. – scaisEdge

Verwandte Themen