【问题标题】:Different databases, same site....with Laravel不同的数据库,相同的站点....使用 Laravel
【发布时间】:2013-07-11 12:59:58
【问题描述】:

这对于 stackoverflow 来说可能不是一个合适的问题......因为它可能太具体了。

但我想知道是否有人知道我将如何安装一个 Laravel,服务于一个站点。但是根据 url,我可以访问不同的数据库。

也就是说……

www.mainsite.com/company1/login - 数据库1

www.mainsite.com/company1/users - 数据库 1

..

www.mainsite.com/company2/login - database2

www.mainsite.com/company2/users - 数据库2

因此,在上述情况下,所服务的站点是完全相同的站点。 当然,每个部分都有一个登录名,并访问不同的数据库。

我知道我可以通过安装多个 laravel 来做到这一点,实际上我现在就是这样做的......

但我希望能够只更新一个版本....而不必将我的更改复制到所有不同的文件夹。

然后,只需将该站点提供给所有多家不同的公司即可。 他们只能访问他们的数据库

这可能吗??

【问题讨论】:

    标签: php database laravel laravel-3


    【解决方案1】:

    您可以在配置中定义多个数据库:

    'default' => 'database1',
    'connections' => array(
        'database1' => array(
            'driver'   => 'mysql',
            'host'     => 'localhost',
            'database' => 'database1',
            'username' => 'root',
            'password' => '',
            'charset'  => 'utf8',
            'prefix'   => '',
        ),
    
        'database2' => array(
            'driver'   => 'mysql',
            'host'     => 'localhost',
            'database' => 'database2',
            'username' => 'root',
            'password' => '',
            'charset'  => 'utf8',
            'prefix'   => '',
        ),
    
    ), 
    

    然后使用fluent查询:

    $user = DB::connection('database2')->table('users')->where('id', '=', 1)->first();
    

    也许你可以使用环境,像这样:

    $environments = array(
      'company1' => array('http://server.com/company1*'),
      'company2' => array('http://server.com/company2*'),
    );
    

    然后在配置中创建您的子文件夹并复制 db 配置以根据需要进行编辑。

    【讨论】:

    • 是的,我想过这样做,但是你能做雄辩的查询吗?或者你是否坚持原始和流利的?因为我有多个关系非常依赖雄辩
    【解决方案2】:

    我为此使用的一种技术是为注册的新客户生成数据库名称并将其存储在我的主数据库中。此时也将创建和迁移数据库。此后,当用户每次登录时,软件都会查找他的数据库名称并使用以下命令即时为他们设置配置:

    Config::set(['database.connections.customerid'])

    您仍然可以拥有 Laravel 和 Eloquent 提供的所有好东西,而不必依赖原始查询。这也使您免于管理大型配置文件。我还创建了与他们的架构名称匹配的资源目录,这样他们就可以拥有一个自定义的前端站点,其中包含视图文件和样式,同时运行与其他人完全相同的堆栈。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-03
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 2017-09-09
      • 2010-11-13
      相关资源
      最近更新 更多