首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel-Hyn多租户,租户连接设置似乎无法解决租户和会话

Laravel-Hyn多租户,租户连接设置似乎无法解决租户和会话
EN

Stack Overflow用户
提问于 2019-03-17 12:25:48
回答 1查看 1.6K关注 0票数 0

我正在用php在本地主机环境中使用Laravel 5.7.28,Hyn/Multi-tenant 5.3开发一个多租户应用程序。租户的连接是按照旧教程使用enforce.tenancy中间件强制执行的。数据库连接(config/database.php)如下所示:(省略不需要的行)

代码语言:javascript
复制
'connections' => [

    'sqlite' => [
        'driver' => 'sqlite',
        'database' => env('DB_DATABASE', database_path('database.sqlite')),
        'prefix' => '',
        'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
    ],

    'system' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'tenancy'),
        'username' => env('DB_USERNAME', 'xxxx'),
        'password' => env('DB_PASSWORD', 'xxxxx'),
        ......
    ],

'tenant' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', '914fb6c2sx'),
        'username' => env('DB_USERNAME', 'xxxx'),
       'password' => env('DB_PASSWORD', 'xxxxx'),
        ......
    ],

'tenant' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', '7239b4a43a'),
        'username' => env('DB_USERNAME', 'xxxx'),
        'password' => env('DB_PASSWORD', 'xxxx'),
        ......
    ],

我有设置会话(config/sessions.php)

代码语言:javascript
复制
/*
|----------------------------------------
| Session Cookie Domain
|----------------------------------------
|
*/
'domain' => env('SESSION_DOMAIN', '.abcd.in'), 

现在,我可以使用相同的域用户表准确登录。如果我在一个租户连接中登录,我可以在没有登录的情况下转到同一角色的第二个域租户连接,反之亦然,即如果我从一个域注销,我就会从第二个域注销。我也在使用Spatie/roles-permissions包。我认为我在租户连接设置和/或会话处理方面都是错误的。我的代码执行得很好。

我对这个问题的第一个疑问是上面所示的租户连接。在所有租户中,我使用连接名称作为'tenant‘。在hyn/多租户中,“租户”连接是阵列吗?我的意思是它在租户连接数组中搜索正确的域数据库名称?这方面对我来说并不清楚。如果我错误地将所有连接命名为租户,那么我尝试将租户命名为'tenant1','tenant2',...(此设置不起作用)。如何在此hyn/多租户中设置会话。我正在尝试使用redis,但我不知道如何在localhost中设置redis。

EN

回答 1

Stack Overflow用户

发布于 2019-03-17 12:41:43

我自己使用了一个多租户应用程序的hyn包,您只需要定义一次租户DB连接,保留db,user,pass为空,因为hyn包将在运行时设置正确的详细信息。在您的示例中,您有2个租户数据库的设置具有相同的名称,这将不会很好地工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55203840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档