我在多租户应用中有三个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']
]
]
但我的约束不起作用。如何将显示的组限制为与公司所属租户匹配的组?
答案 0 :(得分:0)
这个比较简单。只需在公司模型中定义一个新关系,如下所示:(并在管理员配置文件中使用此而不是" group"):
public function tenant_group() {
return $this->belongsTo('Group')->whereTenantId(Session::get('current_tenant_id'));
}
上面的代码假设你有一个名为" current_tenant_id"的会话变量。这决定了当前的用户'承租人。你可以用其他东西替换它,也许是这样的:
Auth::getUser()['tenant_id']