@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(); |
Надеюсь, это поможет!