public $allusers = [];
public function referral(){
return $this->belongsTo(User::class, 'referral_id');
}
public function referralUsers($id, $currentLevel = 1){
$users = $this->getUsers($id);
if ($users['status']) {
$this->allusers[$currentLevel] = $users['user'];
$currentLevel++;
$this->referralUsers($users['ids'], $currentLevel);
}
return $this->allusers;
}
public function scopeLevel()
{
$count = 0;
$user_id = $this->id;
while ($user_id != null) {
$user = User::where('referral_id', $user_id)->first();
if (!$user) {
break;
} else {
$user_id = $user->id;
$count++;
}
}
return $count;
}
public function getUsers($id)
{
if (isset($id)) {
$data['user'] = User::whereIn('referral_id', $id)->get(['id', 'firstname', 'lastname', 'username', 'email', 'phone_code', 'phone', 'referral_id', 'created_at']);
if (count($data['user']) > 0) {
$data['status'] = true;
$data['ids'] = $data['user']->pluck('id');
return $data;
}
}
$data['status'] = false;
return $data;
}
function getLevelUser($id){
$ussss = new \App\Models\User();
return $ussss->referralUsers([$id]);
}
return getLevelUser($id);