我想返回一个用户,其中包含他们推荐的所有人员的列表

我正在我的软件中开发一个推荐系统。我已经获得了正确的推荐,但我想列出所有推荐某人的用户以及他们在管理端推荐的人数。


这是我的用户模型


public function referrals()

{

    return $this->hasMany(Referral::class, 'user_id', 'id');

}


public function referrer()

{

    return $this->hasOne(Referral::class, 'referred_by', 'id');

}

注意:referred_by是推荐某人的人,user_id 是被推荐的人


这是我的推荐模型


protected $fillable = ['user_id', 'referred_by', 'status'];


public function user()

{

    return $this->belongsTo(User::class);

}

这是我的推荐迁移


Schema::create('referrals', function (Blueprint $table) {

            $table->id();

            $table->integer('user_id')->unsigned()->references('id')->on('users');

            $table->integer('referred_by')->unsigned()->references('id')->on('users');

            $table->string('status')->nullable();

            $table->timestamps();

        });


慕田峪7331174
浏览 99回答 1
1回答

胡说叔叔

您可以根据has('relationshipName')您的案例用户中是否存在关系来限制您的结果,这些用户已引用了某些.它将withCount('relationshipName')计算关系中的结果数量,而不实际加载它们。User::has('referrals')->withCount('referrals')->get()
打开App,查看更多内容
随时随地看视频慕课网APP