Laravel 5.1动态数据库连接

问题描述:

我正在使用laravel5.1和mongoDb。在我的应用程序中,我为每个用户分别设置数据库Laravel 5.1动态数据库连接

当用户登录我设置数据库为每个用户数据库使用Config::set('Key' : 'Value')

当我试图获得当前数据库连接使用Config::get('database)一切工作正常,但是当我试图从数据库中获取数据,然后它会返回默认的数据库数据。

+0

如果您想从单独的数据库中获取数据而不是默认数据库,请编写像这样的查询。 '$ users = DB :: connection('myOtherDB') - > select(user_id from users);'这里你可以将数据库的名称传递给连接,然后写出你想执行的任何查询。 – rashidkhan

+0

注意:此选择查询适用于MySQL,但您可以将其更改为mongoDB所需的任何查询。 – rashidkhan

+0

@rashidkhan我怎么能做到这一点在口才? –

DB::purge('mongodb-name');我在Config::set("Key","value")之后使用了这个。 它的工作对我来说。

你必须重写connection属性模型如下:

<?php 

namespace App\Models; 

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

您也可以通过调用$model->setConnection('mongo');

希望这有助于将该值设置动态。

+0

感谢您的建议,但已经尝试过,并没有为我工作。 –