Я разрабатываю реферальную систему в своем программном обеспечении. Я получил реферальное право, но я хочу перечислить всех пользователей, которые направили кого-то, с указанием количества людей, которых они направили в админке.
Вот моя модель пользователя
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();
});