Datenbankverbindungen festlegen
In app/config/database.php kann man beliebig viele Datenbankverbindungen anlegen.
In unserem Fall verwenden wir 2 MySQL Datenbanken von verschiedenen Hosts.
<?php return array( 'default' => 'my_first', 'connections' => array( 'my_first' => array( 'driver' => 'mysql', 'host' => 'my_first', 'database' => 'db_name1', 'username' => 'u1', 'password' => 'pass1' 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ), 'my_second' => array( 'driver' => 'mysql', 'host' => 'my_second', 'database' => 'db_name2', 'username' => 'u2', 'password' => 'pass2' 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ), ), );
Da wir default => my_first angeben, können wir db_name1 wie gewohnt verwenden.
Für my_second gilt folgendes:
Schema
Schema::connection('my_second')->create('some_table', function($table) { $table->increments('id'): });
Query
$users = DB::connection('my_second')->select(...);
Eloquent
<?php class SomeModel extends Eloquent { protected $connection = 'my_second'; }
SetConnection
<?php class SomeController extends BaseController { public function someMethod() { $someModel = new SomeModel; $someModel->setConnection('my_second'); $something = $someModel->find(1); return $something; } }