我正在创建一个laravel项目,我需要一个laravel安装,并在子域中使用其实例与单独的数据库.那些单独的数据库信息将不在config/database.php中.它将从master数据库获取,然后重新连接到其他数据库.
我没有找到任何正确的方法来做到这一点.
你对此有什么想法吗?
谢谢你的时间.
Laravel支持多个数据库连接.首先,在config/database.php
以下位置定义连接:
'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
在模型中设置属性:
您可以以
$connection
编程方式设置值.
2> oseintow..:多租户是一个棘手的架构,需要注意建模.有几种方法可以实现这种架构.有些人决定使用单个数据库,而有些人则更喜欢使用多个数据库(在您的情况下).
他们都有自己需要考虑的利弊.在开始建模应用程序之前,需要考虑很多因素.例如,子域的虚拟主机配置,数据库迁移(在需要时回滚所有数据库等).我将建议这两个软件包可以帮助您前进,并让您更深入地了解如何为您的应用程序建模以满足您的需求.
https://github.com/orchestral/tenanti
https://github.com/hyn/multi-tenant