I'm working on an mlm site, And this is the code I have to get referrals of a referral down to the third generation. As for the requirements I must not use eloquent relationships. Here's my code;
public function matrix()
{
$referrals = DB::table('users')->where('referred_by', Auth::user()->referral_id)->get();
if (!isset($referrals))
{
return view('matrix');
}
elseif(isset($referrals))
{
$referrals2gen = DB::table('users')->where('referred_by', $referrals[0]->referral_id)->get();
if (!isset($referrals2gen))
{
return view('matrix2', ['referrals' => $referrals]);
}
elseif(isset($referrals2gen))
{
$referrals3gen = DB::table('users')->where('referred_by', $referrals2gen[0]->referral_id)->get();
if (!isset($referrals3gen[0]))
{
return view('matrix3', ['referrals' => $referrals, 'referrals2gen' => $referrals2gen]);
}
elseif(isset($referrals3gen[0]))
{
return view('matrix4', ['referrals' => $referrals, 'referrals2gen' => $referrals2gen, 'referrals3gen' => $referrals3gen]);
}
}
}
}
Firstly, the code does not follow the Don't Repeat Yourself Principle. Secondly, it does not give all the referrals of my direct referrals. Any help I can get would be appreciated.