2014-11-21 87 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']