Установить базу данных на основе аутентифицированного пользователя LARAVEL - PullRequest
0 голосов
/ 04 мая 2018

Я использую Laravel 5.6 и хочу установить базу данных по умолчанию на основе аутентифицированного пользователя

, например, когда user1 зарегистрировал DB1, установленный по умолчанию, и так же, как user2, установите для базы данных значение DB2

есть предложения или другие способы сделать это?

спасибо

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Сначала вы можете обновить информацию о конфигурации соединения, указав соответствующие значения в зависимости от вашего пользователя (здесь я предполагаю, что именем соединения по умолчанию является mysql):

// This will overwrite only the values you need updated so you don't have
// to add all of the configuration keys like 'driver', 'charset', etc
config()->set('database.connections.mysql', array_merge(config('database.connections.mysql'), [
    'database' => 'new_database',
    'username' => 'new_username',
    'password' => 'new_password',
]));

Тогда вам просто нужно повторно подключиться к базе данных, и она будет использовать новую конфигурацию:

\DB::reconnect('mysql');

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

0 голосов
/ 04 мая 2018

используя Illuminate \ Support \ Facades \ Auth;

вы могли бы сделать

 if(Auth::user()->type == 1){
      $users = DB::connection('DB1 ')->select(...);
 }else{
      $users = DB::connection('user2 ')->select(...);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...