Как использовать несколько соединений одно за модулем в Laravel - PullRequest
0 голосов
/ 18 февраля 2020

Я создаю приложение в Laravel, где у каждого будет своя база данных, возможно ли каждому модулю получить свой файл подключения вместо того, чтобы оставлять все внутри config / database?

Ответы [ 2 ]

1 голос
/ 18 февраля 2020

Когда вы говорите, что модуль означает, что вы подразумеваете под этим?

Laravel поддерживает несколько соединений дБ, и в каждой модели Eloquent вы можете добавить свойство $ connection, чтобы указать, какое соединение с базой данных использовать для заданного c модель.

class MyClass extends Eloquent {

    protected $connection = 'myConnectionName';
    ...
}

убедитесь, что все модели в отношениях находятся в одной базе данных. Добавьте определение myConnectionName в config / database. php

0 голосов
/ 18 февраля 2020

Да, возможно выполнить следующий шаг и разрешить мне, если возникнет запрос

Шаг 1: Добавить второй код БД в config-> database. php Нижняя часть mysql => [....]

'mysql2' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST2', '100.10.0.100'),  // note add your hostname 
            'port' => env('DB_PORT2', '3306'),
            'database' => env('DB_DATABASE2', 'forge'),
            'username' => env('DB_USERNAME2', 'forge'),
            'password' => env('DB_PASSWORD2', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

Шаг 2: Добавьте код в файл .evn

DB_CONNECTION2=mysql
DB_HOST2=100.10.0.100 // Add your hostname
DB_PORT2=3306
DB_DATABASE2=test // add your DB name
DB_USERNAME2=testuser // add your user name
DB_PASSWORD2=test123 // add your pass

Шаг 3: вы можете получить доступ в контроллере, как (Примечание: используйте имя таблицы и поля)

$records= DB::connection('mysql2');       
       $records1 = $records->table('contact');
       $records2 = $records1->where('mobile',$client_mob)
                   ->where('delete',0)
                   ->first(['id','converted']);

Всего наилучшего ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...