@camren
В Laravel 5.4 вы можете подключиться к нескольким базам данных MS SQL, используя мультиплексирование конфигураций баз данных. Следуйте этим шагам:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
'default' => env('DB_CONNECTION', 'mysql'), 'connections' => [ 'mysql' => [ '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', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ], 'second_db' => [ 'driver' => 'sqlsrv', 'host' => env('DB_HOST_2', 'localhost'), 'port' => env('DB_PORT_2', '1433'), 'database' => env('DB_DATABASE_2', 'forge'), 'username' => env('DB_USERNAME_2', 'forge'), 'password' => env('DB_PASSWORD_2', ''), 'charset' => 'utf8', 'prefix' => '', ], ], |
1 2 3 4 5 6 |
DB_CONNECTION=mysql DB_HOST_2=localhost DB_PORT_2=1433 DB_DATABASE_2=second_db DB_USERNAME_2=homestead DB_PASSWORD_2=secret |
@camren
т использовать другое соединение базы данных, установив его в свойство $connection модели или через конструктор контроллера:
Модель:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
namespace App; use IlluminateDatabaseEloquentModel; class SecondModel extends Model { /** * The connection name for the model. * * @var string */ protected $connection = 'second_db'; // rest of the code } |
Контроллер:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
namespace AppHttpControllers; use AppSecondModel; use IlluminateHttpRequest; use AppHttpControllersController; class SecondController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth'); $this->secondModel = new SecondModel(); } // rest of the code } |
Теперь вы можете использовать методы Eloquent для работы с базой данных, используя второе подключение:
1
|
$records = SecondModel::all(); |
Надеюсь, это поможет!