I 2 Datenbanken definiert haben, zum BeispielYII2 Beziehungen in Modellen zwischen Tabellen aus 2 Erstellen von Datenbanken
return [
'components' => [
'db1' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=db1name',
'username' => 'db1username',
'password' => 'db1password',
],
'db2' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=db2name',
'username' => 'db2username',
'password' => 'db2password',
],
],
];
Jetzt habe ich eine Tabelle als ‚Benutzer‘ in ‚DB1‘ und Tabelle ‚Länder‘ in ‚db2‘
users
id , country_code , username , password
1 , DE , xyz , 12345
2 , FR , abc , 12345
countries
code , name
DE , Germany
FR , France
IN , India
ich habe die Fremdschlüsselbeziehung zwischen users.country_code & countries.code definiert
AUSGABE
Aber wenn ich versuche, das Modell für 'Benutzer' Tabelle mit gii erstellen, gibt es einen Fehler, möglicherweise weil die Tabellen Beziehung aus 2 verschiedenen Datenbanken sind. Verwendung von Tabellen aus verschiedenen Datenbanken in Relationen eines Modells.
Alle Vorschläge sind
begrüßt
Ich denke gii die Datenbankverbindung verwendet, die in 'db' gespeichert ist. So erzeugt es einen Fehler (wie [dies] (http://stackoverflow.com/questions/31915469/multiple-database-connection-yii2-not-working)). – robsch
[This] (http://stackoverflow.com/a/27254893/57091) könnte helfen. Sie sollten [getDb()] (http://www.yiiframework.com/doc-2.0/yii-db-activerecord.html#getDb%28%29-detail) in Ihren Modellklassen überschreiben. – robsch
Hi robsch, ich habe bereits die Links überprüft, die Sie zur Verfügung gestellt haben, aber wenn Sie mir wissen lassen, wie man eine Join - Anweisung erstellt, wenn mehrere DBs betroffen sind, ist das für Tabellen in einer einzelnen db - 'Joinrel' => Array (self :: BELONGS_TO, 'User', 'code'), – nshah143