使用laravel设置基于SaaS的应用程序

时间:2019-05-06 04:02:30

标签: php laravel

我需要帮助,我面临的问题是。 假设有一个像 aaa.xyz.com 和其他域名,例如 bbb.xyz.com 。 因此,当我的用户尝试登录 aaa.xyz.com 时,如果用户从登录,则所有羽毛操作应分别在该子域的 aaa 数据库上进行> bbb.xyz.com ,然后 bbb 数据库应具有所有功能

如何使用PHP laravel框架设置此类系统

1 个答案:

答案 0 :(得分:0)

  

可以采用不同/多种方法,我将提到其中的几种:

第一种方法为相应的域保留多个env文件(包含每个域的数据库凭据),并使用如下所示的必需文件(在返回$之前,将这些代码写在bootstrap \ app.php中)应用程序):

$envFile = $_SERVER['HTTP_HOST'] == 'aaa.xyz.com' ? '.env-aaa' : $_SERVER['HTTP_HOST'] == 'bbb.xyz.com' ? '.env-bbb'; $app->loadEnvironmentFrom($envFile);

  

您还可以在web.php / routes.php文件中创建路由组,如下所示,以保持代码整洁:

Route::group(['domain' => 'www.domain.com'], function(){
...
});

Route::group(['domain' => 'mobile.domain.com'], function(){
//...
});

第二种方法(如果您拥有两个以上的域,或者您希望将来添加更多的域) 步骤如下:

  1. 创建一个父数据库,并创建一个包含所有域的凭据以及域名的表。
  2. 当域被命中时,在父数据库中检查该URL的存在,并获取项目中的凭据,并以加密形式保留在会话中,然后将其传递到database.php文件。 希望这会有所帮助!