2015-06-20 4 views
1

Я использую laravel5.1 с mongoDb. В моем приложении у меня есть отдельная база данных для каждого пользователя.Подключение динамической базы данных Laravel 5.1

При входе пользователя я устанавливаю базу данных в соответствии с пользовательской БД, используя Config::set('Key' : 'Value').

Когда я пытаюсь получить текущее соединение с базой данных, используя Config::get('database) все работает нормально, но когда я пытаюсь получить данные из базы данных, тогда он возвращает данные базы данных по умолчанию.

+0

Если вы хотите получить данные из отдельной базы данных, а не базы данных по умолчанию, тогда напишите ваши запросы следующим образом. '$ users = DB :: connection ('myOtherDB') -> select (user_id от пользователей);' Здесь вы можете передать имя базы данных в соединение и затем написать любой запрос, который хотите выполнить. – rashidkhan

+0

Примечание: этот запрос выбора для MySQL, но вы можете изменить его на любой запрос, который вы хотите для mongoDB. – rashidkhan

+0

@rashidkhan, как я могу это сделать красноречивым? –

ответ

0

DB::purge('mongodb-name'); Я использовал это после Config::set("Key","value"). И его работа для меня.

0

Вы должны переопределить connection свойства в модели следующим образом:

<?php 

namespace App\Models; 

class Model extends \Illuminate\Database\Eloquent\Model 
{ 
    protected $connection = 'your_connection_name_from_database_config'; 
} 

Вы также можете установить это значение динамически с помощью вызова $model->setConnection('mongo');

Надеется, что это помогает.

+0

Спасибо за предложение, но уже попробовал это и не работал для меня. –

Смежные вопросы