我有一个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]);
}
}
}
} 如果用户有引用,它会返回普通视图。如果他不这样做,它将返回一个空白页。会感谢任何人的帮助。注意:我知道这不是干的,但我是一个初学者,我已经有一段时间的问题了。
发布于 2017-08-22 12:18:02
为什么要在控制器中查询..更容易解决问题的最好方法是创建一个存储库,并让控制器保持干净。对于查询,最好使用eloquent是简单的
这里有一个链接
https://bosnadev.com/2015/03/07/using-repository-pattern-in-laravel-5/
发布于 2017-08-22 19:13:36
在此if后添加else
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(...);
}https://stackoverflow.com/questions/45808641
复制相似问题