冻结节点管理员关系受租户限制



我在多租户应用程序中有三个Laravel模型:

Tenant {}
Company {
    public function tenant() {
        return $this->belongsTo('Tenant');
    }
    public function group() {
        return $this->belongsTo('Group');
    }
}
Group {
    public function companies() {
        return $this->hasMany('Company');
    }
        public function tenant() {
            return $this->belongsTo('Tenant');
        }
}

我正在使用Frozennode管理器为我的应用程序构建一个管理界面,因此超级管理员可以更改内容等等。我希望能够更改公司的集团:

'edit_fields' => [
    ],
    'group' => [
        'title' => 'Group',
        'type' => 'relationship',
        'name_field' => "title",
        //'constraints' => ['tenant' => 'tenant']
    ]
]

但我的约束不起作用。如何将显示的组限制为与公司所属租户匹配的组?

这相对简单。只需在公司模型中定义一个新关系,如下所示:(并在管理员配置文件中使用它代替"组"):

public function tenant_group() {
    return $this->belongsTo('Group')->whereTenantId(Session::get('current_tenant_id'));
}

上面的代码假定你有一个名为"current_tenant_id"的会话变量,它确定当前用户的租户。你可以用其他东西替换它,也许是这样的:

Auth::getUser()['tenant_id']

最新更新