我正在创建一个laravel项目,我需要one laravel installation个,并使用其子域中的separate database个实例.而这些单独数据库的信息将不在config/database中.php.它将从主数据库获取,然后重新连接到另一个数据库.

我找不到合适的方法.

你知道这件事吗?

谢谢你抽出时间.

推荐答案

Laravel支持多个数据库连接.首先,在config/database.php中定义连接:

<?php
return array(

    'default' => 'default_connection',

    'connections' => array(

        // domain.com
        'default_connection' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'primary_database',
            'username'  => 'username',
            'password'  => 'password'
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

        // sub.domain.com
        'subdomain_connection' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'secondary_database',
            'username'  => 'username',
            'password'  => 'password'
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
    ),
);

现在,要指定模型应使用的连接,可以在模型中设置$connection属性:

<?php

class YourModel extends Eloquent {

    protected $connection = 'subdomain_connection';

}

可以通过编程设置$connection的值.

Laravel相关问答推荐

使用MAATWebSite/EXCEL导入Exel时,不会创建Laravel模型

在Laravel Livewire中,如果一个输入基于另一个唯一的字段是唯一的,如何判断验证?

在 blade laravel 中以格式编号显示长数字

API GET 请求得到与数据库记录不同的结果

使用正则表达式 laravel 忘记缓存

如何在 laravel 5.8 中显示自定义消息?

处理程序类中的错误 - Laravel

会话中的 Laravel 存储数组

为什么我的 Laravel 队列作业(job)在 60 秒后失败?

在表单中添加一对多 - Backpack laravel

Laravel 从现有模型生成迁移

laravel 5 - assets资源 list 中未定义 css 文件?

在 AWS 上找不到 Laravel 5 类Collective\Html\HtmlServiceProvider

Laravel 中的填充方法不起作用?

防止 Eloquent 查询上的模型水合

laravel 队列 - 同步驱动程序如何工作?它是在单独的进程/线程还是主执行线程中执行?

在 Laravel 4 中使用 HTML 占位符

Laravel 5.4 Vue.JS 无法挂载组件:未定义模板或渲染函数

[Vue 警告]:找不到元素:#app

Eloquent - 带有字符串值而不是列标题的连接子句