Laravelの次のチュートリアルコラムでは、Laravelで複数のデータベースを利用する方法をご紹介しますので、お役に立てれば幸いです。
.env >= 5.0
を使用します (5.5 Laravel 8 に基づいてテストされており、利用可能です)
.env ファイル
DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=database1DB_USERNAME=rootDB_PASSWORD=secretDB_CONNECTION_SECOND=mysqlDB_HOST_SECOND=127.0.0.1DB_PORT_SECOND=3306DB_DATABASE_SECOND=database2DB_USERNAME_SECOND=rootDB_PASSWORD_SECOND=secret
config/database.php ファイル
'mysql' => [ 'driver' => env('DB_CONNECTION'), 'host' => env('DB_HOST'), 'port' => env('DB_PORT'), 'database' => env('DB_DATABASE'), 'username' => env('DB_USERNAME'), 'password' => env('DB_PASSWORD'),],'mysql2' => [ 'driver' => env('DB_CONNECTION_SECOND'), 'host' => env('DB_HOST_SECOND'), 'port' => env('DB_PORT_SECOND'), 'database' => env('DB_DATABASE_SECOND'), 'username' => env('DB_USERNAME_SECOND'), 'password' => env('DB_PASSWORD_SECOND'),],
注意: mysql2
では、
db_usernameと
db_passwordが同じである場合、
env('DB_USERNAME') を使用できます。。
Mode
使用する接続を指定するには、connection() メソッド
Schema::connection('mysql2')->create('some_table', function($table){ $table->increments('id'):});
$users = DB::connection('mysql2')->select(...);
モデルに
$connection 変数を設定します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">class SomeModel extends Eloquent {
protected $connection = 'mysql2';}</pre><div class="contentsignin">ログイン後にコピー</div></div>
メソッドまたは on
静的メソッドを使用して実行時に接続を定義することもできます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">class SomeController extends BaseController {
public function someMethod()
{
$someModel = new SomeModel;
$someModel->setConnection('mysql2'); // non-static method
$something = $someModel->find(1);
$something = SomeModel::on('mysql2')->find(1); // static method
return $something;
}}</pre><div class="contentsignin">ログイン後にコピー</div></div>
注複数のデータベースにまたがるテーブルとの関係を確立しようとするときは注意してください。これは使用できますが、データベースとデータベースの設定によってはいくつかの注意事項が伴う場合があります。
複数の接続を使用する場合、次のことができます。
DB ファサード クラスの接続メソッドを通じて各接続にアクセスします。
connection メソッドに渡される名前は、
config/database.php 構成ファイルにリストされている接続に対応する必要があります:
$users = DB::connection('foo')->select(...);
メソッドを使用して、元の基になる PDO インスタンスにアクセスすることもできます:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$pdo = DB::connection()->getPdo();</pre><div class="contentsignin">ログイン後にコピー</div></div>
翻訳アドレス: https://learnku.com/laravel/t/62110
以上がLaravel が複数のデータベースを使用する方法の詳細な説明 (コード例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。