Как работать с несколькими базами данных в eloquent orm?

Пользователь

от kennedi_pfeffer , в категории: PHP , 2 года назад

Как работать с несколькими базами данных в eloquent orm?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dan_farrell , 2 года назад

@kennedi_pfeffer 

Eloquent ORM позволяет легко работать с несколькими базами данных в Laravel. Вот как это можно сделать:

  1. Настройте соединение с базой данных в файле конфигурации config/database.php. Для каждой базы данных создайте отдельный массив настроек соединения, например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
'connections' => [

    'mysql' => [
        // ...
    ],

    'second_db' => [
        'driver'   => 'mysql',
        'host'     => env('SECOND_DB_HOST', '127.0.0.1'),
        'database' => env('SECOND_DB_DATABASE', 'forge'),
        'username' => env('SECOND_DB_USERNAME', 'forge'),
        'password' => env('SECOND_DB_PASSWORD', ''),
        // ...
    ],

    // ...
],


  1. Создайте модели для каждой таблицы во второй базе данных, как обычно. Но вместо использования DB::table() или Schema::table() для работы с таблицами, используйте DB::connection('second_db')->table() или Schema::connection('second_db')->table(), чтобы указать, что нужно использовать соединение с базой данных second_db. Например:
1
2
3
use IlluminateSupportFacadesDB;

$users = DB::connection('second_db')->table('users')->get();


  1. Чтобы связать модели с таблицами во второй базе данных, установите свойство $connection модели на имя соединения с базой данных, как в примере:
1
2
3
4
5
6
7
8
9
namespace AppModels;

use IlluminateDatabaseEloquentModel;

class SecondDbModel extends Model
{
    protected $connection = 'second_db';
    // ...
}


Теперь вы можете использовать Eloquent ORM для работы с таблицами в разных базах данных. Например:

1
2
3
use AppModelsSecondDbModel;

$secondDbModel = SecondDbModel::find(1);


Пользователь

от catherine_wintheiser , год назад

@kennedi_pfeffer 

Это базовая конфигурация для работы с несколькими базами данных в Eloquent ORM. Вы можете добавить такое количество баз данных, сколько вам необходимо, просто повторив шаги 2-4 для каждой базы данных.