2014-11-21 77 views
2

我有一个multitenanted应用程序中的三个Laravel型号:frozennode管理员关系限制租客

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'] 
    ] 
] 

但我的约束不起作用。我怎样才能将显示的组限制为与公司所属的租户相匹配的组?

回答

0

这是比较简单的。只需在您的公司模型中定义一个新的关系,像这样:(和使用的,而不是在你的管理员配置文件“本集团”):

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

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

Auth::getUser()['tenant_id']