当我使用模型
时,我想做类似的事情class DB extends Model {
Protected $table = "mssql_table";
}
DB::useConnection("mssql")->All();
就配置而言,我发现我可以自己在app / config / database.php中添加它
所以我做到了。
所以现在我已经在我的联系中得到了这个:
'mssql' => [
'driver' => 'sqlsrv',
'host' => env('DB_MSSQL_HOST', 'localhost'),
'port' => env('DB_MSSQL_PORT', '3306'),
'database' => env('DB_MSSQL_DATABASE', 'forge'),
'username' => env('DB_MSSQL_USERNAME', 'forge'),
'password' => env('DB_MSSQL_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
这是我的.env文件
DB_MSSQL_HOST=
DB_MSSQL_PORT=
DB_MSSQL_DATABASE=
DB_MSSQL_USERNAME=
DB_MSSQL_PASSWORD=
但下一步是什么?谷歌没有真正帮助我,在laravel 4. *你可以使用db :: connection();但它似乎已经有效了
有什么想法吗?
答案 0 :(得分:3)
首先,您需要在配置中设置一个或多个数据库(确保更改值,我只是复制和粘贴):
'db1' => [
'driver' => 'sqlsrv',
'host' => env('DB_MSSQL_HOST', 'localhost'),
'port' => env('DB_MSSQL_PORT', '3306'),
'database' => env('DB_MSSQL_DATABASE', 'forge'),
'username' => env('DB_MSSQL_USERNAME', 'forge'),
'password' => env('DB_MSSQL_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
'db2' => [
'driver' => 'sqlsrv',
'host' => env('DB_MSSQL_HOST', 'localhost'),
'port' => env('DB_MSSQL_PORT', '3306'),
'database' => env('DB_MSSQL_DATABASE', 'forge'),
'username' => env('DB_MSSQL_USERNAME', 'forge'),
'password' => env('DB_MSSQL_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
然后,当然,您将需要为新添加的数据库创建一些迁移模式(您需要表等):
Schema::connection('db2')->create('table_name', function($table)
{
$table->increments('id');
...
});
现在,在您的Eloquent模型中,您可以定义要使用的数据库,如下所示:
class ModelName extends Eloquent {
protected $connection = 'db2';
}
答案 1 :(得分:1)
谢谢@Mike Barwick,我唯一想要的是protected $connection = ""
现在我可以一次查询2个数据库