【问题标题】:frozennode administrator relationship restrict by tenantfreezenode 管理员关系受租户限制
【发布时间】:2015-01-19 10:51:05
【问题描述】:

我在一个多租户应用中有三个 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']
    ]
]

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

【问题讨论】:

    标签: php laravel laravel-4 eloquent


    【解决方案1】:

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

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

    以上代码假设您有一个名为“current_tenant_id”的会话变量,它决定了当前用户的租户。你可以用别的东西代替它,也许是这样的:

    Auth::getUser()['tenant_id']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多