floodnode管理员关系受租户限制

时间:2014-11-21 10:12:38

标签: php laravel laravel-4 eloquent

我在多租户应用中有三个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 Administrator为我的应用构建管理界面,因此超级管理员可以更改内容等等。我希望能够改变公司集团:

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

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

1 个答案:

答案 0 :(得分:0)

这个比较简单。只需在公司模型中定义一个新关系,如下所示:(并在管理员配置文件中使用此而不是" group"):

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

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

Auth::getUser()['tenant_id']