简体   繁体   中英

Page showing blank Laravel

i have a laravel project that's supposed to get a person's referral 3 levels deep. Here is my controller with its query.

public function matrix()
{    
    $referrals = DB::table('users')->where('referred_by', Auth::user()->referral_id)->get();

    if (empty($referrals))
    {
        return view('matrix');
    }
    elseif(isset($referrals[0]))
    {
        $referrals2gen = DB::table('users')->where('referred_by', $referrals[0]->referral_id)->get();

        if (!isset($referrals2gen[0])) 
        {
            $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]);
            }

        }
    }
}  

if a user has referrals it returns the normal view. If he doesnt it retruns a blank page. Will appreciate any help whatsover. NOTE: i know its not DRY but am a beginner and i have been having issues with these for a while

Why are you querying in a controller.. The best way to solve your problem easier is to create a repository and leave the controller clean. And for the query you better use eloquent is simple

Here is a link

https://bosnadev.com/2015/03/07/using-repository-pattern-in-laravel-5/

Add else after this if

    if (!isset($referrals2gen[0])) 
    {
        $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]);
        }

    }
    else
    {
        return view(...);
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM