Laravel 5.1动态数据库连接
问题描述:
我正在使用laravel5.1和mongoDb。在我的应用程序中,我为每个用户分别设置数据库Laravel 5.1动态数据库连接
当用户登录我设置数据库为每个用户数据库使用Config::set('Key' : 'Value')
。
当我试图获得当前数据库连接使用Config::get('database)
一切工作正常,但是当我试图从数据库中获取数据,然后它会返回默认的数据库数据。
答
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
感谢您的建议,但已经尝试过,并没有为我工作。 –
如果您想从单独的数据库中获取数据而不是默认数据库,请编写像这样的查询。 '$ users = DB :: connection('myOtherDB') - > select(user_id from users);'这里你可以将数据库的名称传递给连接,然后写出你想执行的任何查询。 – rashidkhan
注意:此选择查询适用于MySQL,但您可以将其更改为mongoDB所需的任何查询。 – rashidkhan
@rashidkhan我怎么能做到这一点在口才? –