You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel多租户问题:Nova仪表盘从租户域访问时数据源选择异常求助

Laravel多租户Nova跨数据库读取解决方案
  • 给模型绑定对应数据库连接
    直接在模型类里指定连接属性:

    • 租户专属模型(比如TenantUser、TenantOrder)添加:protected $connection = 'tenant';
    • 中央共享模型(比如Product、SystemSetting)添加:protected $connection = 'central';
      Nova资源会自动继承对应模型的连接配置,确保资源类关联的是正确的模型即可。
  • 重写Nova资源的查询逻辑(按需)
    如果某些Nova资源需要强制使用中央连接(即使当前处于租户上下文),可以在资源类里重写query方法:

    public static function query(Request $request)
    {
        // 强制该资源使用中央数据库连接
        return parent::query($request)->setConnection('central');
    }
    
  • 调整Nova仪表盘组件的数据源
    仪表盘的统计卡片、指标等组件,如果需要读取中央库数据,直接在逻辑里指定连接:

    public function calculate(Request $request)
    {
        // 明确使用中央连接查询统计数据
        $total = \App\Models\SystemLog::on('central')->count();
        return $this->count($total);
    }
    
  • 确认数据库连接配置正确性
    检查config/database.php,确保已配置tenant和central两个连接实例,分别指向租户数据库和中央数据库;同时确保你的租户识别中间件(比如基于域名解析)能正确切换tenant连接的数据库参数。

内容的提问来源于stack exchange,提问作者edinkahvedzic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:31:59