Загрузка другой базы данных для другого пользователя - Laravel - PullRequest
0 голосов
/ 04 мая 2020

У меня есть Laravel проект (основной), и я загружаю другой laravel проект (дополнительный), используя iframe в модуле моего основного проекта. Теперь мне нужно загрузить другую базу данных для вторичного проекта другим пользователем основного проекта. Было бы здорово, если кто-нибудь может мне помочь с этим?

1 Ответ

0 голосов
/ 11 мая 2020

Вот как я это сделал! Мне пришлось создать промежуточное программное обеспечение и добавить это промежуточное программное обеспечение в группу промежуточного программного обеспечения маршрута.

class ChangeDatabase
{

    public function handle($request, Closure $next)
    {
        if (Auth::check()) {
            $database_name = Auth::user()->database;
            $user_id = Auth::user()->id;
            Config::set('database.connections.tenant', array(
                'driver'    => 'mysql',
                'host'      =>  '',
                'database'  => $database_name,
                'username'  => 'forge',
                'password'  => '',
                'port'  => '3306',
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
            ));
            Config::set('database.default', 'tenant');
            $user = User::where('id', $user_id)->first();
            Auth::guard()->login($user);
        }

        return $next($request);
    }
}

Затем я должен был создать черту и использовать ее во всех моделях.

trait DatabaseChangerTrait {
    public function __construct(){

        if (Auth::check()) {
            $database_name = Auth::user()->database;

            $user_id = Auth::user()->id;
            Config::set('database.connections.tenant', array(
                'driver'    => 'mysql',
                'host'      =>  '',
                'database'  => $database_name,
                'username'  => 'forge',
                'password'  => '',
                'port'  => '3306',
                'charset'   => 'utf8',
                'collation' => 'utf8_unicode_ci',
                'prefix'    => '',
            ));
            Config::set('database.default', 'tenant');
            $user = User::where('id', $user_id)->first();
            Auth::guard()->login($user);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...