显示空白Laravel的页面

时间:2017-08-22 03:54:22

标签: php laravel laravel-5 laravel-5.4

我有一个laravel项目,应该让一个人的推荐3级深。这是我的控制器及其查询。

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]);
            }

        }
    }
}  

如果用户有引荐,则返回普通视图。如果他没有重新打开一个空白页面。将不胜感激任何帮助。 注意:我知道它不是DRY,但我是初学者,我一直有这些问题

2 个答案:

答案 0 :(得分:0)

为什么要在控制器中查询..更容易解决问题的最佳方法是创建存储库并保持控制器清洁。 对于查询,您最好使用eloquent很简单

这是一个链接

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

答案 1 :(得分:0)

在此else

之后添加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(...);
    }