興味深い...限りとして、私はLaravelがこれをネイティブにサポートしていないことを知っています。
私はこの作品を作るための方法を考えることができます。
あなたの.envファイルに複数のデータベースを作成することができます。
DB_CONNECTION=region1
DB_HOST=adomain.com
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
そして、別のものを:
DB_CONNECTION=region2
DB_HOST=anotherdomain.com
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
その後追加それはあなたのdatabase config
:
'region1' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
リージョン2と同じことを行います。
は今Eloquent
クラスを拡張し、「setMultipleConnections」のようなメソッドを追加します。
public method setMultipleConnections($databases, Model $model) {
$collection = new Illuminate\Database\Eloquent\Collection;
// Loop over $databases array and for each one of them get the collection.
foreach ($databases as $database) {
$model = new $model;
$model->setConnection($database);
$model->get();
$collections->merge($model);
}
return $collection;
}
その後、私はあなたがそのコレクションにall
とfind
のようなメソッドを呼び出すことができると思います。
これはどれも動作しませんが、それは簡単なドラフトです。私はあなたが私がここで達成しようとしていることを知っていると思います。これはあなたが探しているものですか?
はい、これは私が欲しいものです。しかし、私はそれを実装するために適切なものを考え出すことはできません。 –
私がやったやり方は、あなたがそれを実装するための適切な方法ではないでしょうか? –
申し訳ありませんが、「この作品はありません」とはどういう意味ですか? –