在我的应用程序中,我有一个用户(显然)。
class User {
public function teams()
{
return $this->belongsToMany(Team::class, 'team_user', 'user_id')->wherePivot('confirmed', '!=', null);
}
}
我正在尝试创建一个扩展User
的模型,如下所示
class Teamleader extends User
{
protected $table = 'users';
public static function boot()
{
parent::boot();
static::addGlobalScope(new TeamleaderScope);
}
}
这个想法是团队领导是在team_user
关系表中,具有isLeader
布尔值为真的用户。在我的TeamleaderScope
中,我尝试了类似以下的内容:
class TeamleaderScope implements Scope
{
public function apply(Builder $builder, Model $model)
{
$model->teams()->wherePivot('isLeader', true);
}
}
但是这似乎是错误的,因为Teamleader::all()
只返回所有用户。我从未尝试过像这样扩展模型,但应该是可能的,对吧?有人能指导一下我吗?
apply()
方法中尝试这个:$builder->whereHas('team_user', function ($query) { $query->wherePivot('isLeader', true); });
- i--