拉拉维尔有条件的属于斯托马尼关系

问题描述 投票:0回答:1

我在用户模型内有一种方法

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; }
laravel relationship laravel-relations
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.