我在用户模型内有一种方法
tenants()
,现在在此方法中,它在下面返回的方法正常,
return $this->belongsToMany(
Municipality::class,
'municipality_user',
'user_id',
'municipality_id'
);
但是,当用户是超级管理员用户时,我想获得所有城市。
$user->isSuperAdmin()
if ($this->isSuperAdmin()) {
return Municipality::all();
}
return $this->belongsToMany(
Municipality::class,
'municipality_user',
'user_id',
'municipality_id'
);
但它返回此错误:app \ models \ user ::租户必须返回关系实例。
我应该构建一个自定义的属于属于属于的属性或如何实现?
public function tenants(): BelongsToMany
{
$relation = $this->belongsToMany(
Municipality::class,
'municipality_user',
'user_id',
'municipality_id'
);
if ($this->isSuperAdmin()) {
// For super admins, return a new query for all municipalities
return Municipality::query();
}
return $relation;
}