ホームページ >バックエンド開発 >PHPチュートリアル >yii2 複数のデータベース インスタンス メソッドを使用する
yii2 の構成と複数のデータベースの操作に関して、このドキュメントでは具体的な構成も非常に簡単に示しています。ここでは、単一の管理ライブラリ dbname2 とビジネス ライブラリ dbname を例として取り上げます。複数のデータベース。この記事では、yii2 で複数のデータベースを利用する場合を中心に紹介しますので、お役に立てれば幸いです。
No1. 最初のステップでは、Baidu のほとんどのドキュメントを参照して操作できます。
'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=ip;dbname=dbname', 'username' => 'username', 'password' => 'pwd', 'charset' => 'utf8', ], 'db2' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=ip;dbname=dbname2', 'username' => 'username', 'password' => 'pwd', 'charset' => 'utf8', ], ],
No2. 2 番目のステップでは、構成ファイル main.php を開き、4 つの権限関連のデータ テーブル構成を authManager オプションに追加します。
'authManager' => [ 'class' => 'yii\rbac\DbManager', 'defaultRoles' => ['guest'], 'itemTable' => 'dbname2.auth_item', 'itemChildTable' => 'dbname2.auth_item_child', 'assignmentTable' => 'dbname2.auth_assignment', 'ruleTable' => 'dbname2.auth_rule', ],
実際、ここで設定されているのは、vendaryiisoftyii2rbacDbManager.php クラスの 4 つのプロパティです。これは上記と一致しており、プロジェクト設定ファイルを直接変更する必要があります。
いいえ、もうすぐ終わります。まだ読んでいないのですが、なぜですか?それで、ユーザーテーブルとメニューテーブルをどうすればよいと思いますか?心配しないで、3 番目のステップを見てみましょう:
このステップも非常に簡単です。次のように構成するだけです
プロジェクトの configparams.php ファイルを見つけて、次の構成項目を追加します。わかりました
'mdm.admin.configs' => [ 'menuTable' => 'dbname2.menu', // 'userTable' => 'dbname2.user', ],
注意、なぜ上記の設定項目 userTable がブロックされているのでしょうか? これは個人の設定によって異なります。ファイル Vendormdmsoftyii2-admincomponentsConfigs.php を開き、userTable 属性があるかどうかを確認してください。設定されていない場合は、設定してみてください。まだ 1 つのステップが残っています。これも例です。
上記の userTable を例として考えてみましょう。gii を使用してモデル ファイル User.php を生成すると、デフォルトで設定されたテーブルは dbname ライブラリにあり、user テーブルは dbname2 ライブラリにあるためです。 , User.php モデル ファイルの tableName メソッドを変更し、テーブルの前にライブラリ名を追加する必要があります。
public static function tableName() { return 'dbname.user'; }
関連する推奨事項:
phpで複数のデータベースを操作するためのCIのコード
php複数のデータベースに同時に接続する方法_PHPチュートリアル
PHP複数のデータベース間でクエリを記述する方法ステートメント
以上がyii2 複数のデータベース インスタンス メソッドを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。