【问题标题】:Laravel 5.1 dynamic database connectionLaravel 5.1 动态数据库连接
【发布时间】:2015-06-23 15:20:23
【问题描述】:

我正在使用 laravel5.1 和 mongoDb。在我的应用程序中,每个用户都有单独的数据库。

当用户登录时,我使用Config::set('Key' : 'Value')根据用户数据库设置数据库。

当我尝试使用Config::get('database) 获取当前数据库连接时,一切正常,但是当我尝试从数据库中获取数据时,它返回默认数据库数据。

【问题讨论】:

  • 如果您想从单独的数据库而不是默认数据库中获取数据,请像这样编写查询。 $users = DB::connection('myOtherDB')->select(user_id from users); 在这里您可以将数据库的名称传递给连接,然后编写您想要执行的任何查询。
  • 注意:此选择查询适用于 MySQL,但您可以将其更改为您想要用于 mongoDB 的任何查询。
  • @rashidkhan 我怎么能用 eloquent 做到这一点?

标签: mongodb laravel-5.1


【解决方案1】:

您必须按如下方式覆盖模型中的connection 属性:

<?php

namespace App\Models;

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

你也可以通过调用$model-&gt;setConnection('mongo');来动态设置这个值

希望这会有所帮助。

【讨论】:

  • 感谢您的建议,但已经尝试过,但对我没有用。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-05
    • 2016-02-21
    • 2015-10-11
    • 2017-08-15
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多