【问题标题】:How to use loop for following Laravel code?如何使用循环来跟踪 Laravel 代码?
【发布时间】:2021-11-09 11:52:39
【问题描述】:
    $query1 =  User::where('sponser_id',$_SESSION['ruserid'])->get('userid');
    $count1= count($query1);
    
    $query2 =  User::whereIn('sponser_id',$query1)->get('userid');
    $count2= count($query2);

    $query3 =  User::whereIn('sponser_id',$query2)->get('userid');
    $count3= count($query3);

    $query4 =  User::whereIn('sponser_id',$query3)->get('userid');
    $count4= count($query4);

    $query5 =  User::whereIn('sponser_id',$query4)->get('userid');
    $count5= count($query5);

    $query6 =  User::whereIn('sponser_id',$query5)->get('userid');
    $count6= count($query6);

    $query7 =  User::whereIn('sponser_id',$query6)->get('userid');
    $count7= count($query7);

    $allcount=$count1+$count2+$count3+$count4+$count5+$count6+$count7;

我想计算用户的总下线。这段代码工作正常。但是如何使用循环来简化这段代码呢?

【问题讨论】:

  • 看起来像一个金字塔模式应用程序;)有什么尝试?阅读本文以改善您的问题stackoverflow.com/help/how-to-ask
  • 你可以在你的for循环中使用${"query".$i},它允许你创建变量变量。

标签: mysql laravel laravel-5 eloquent


【解决方案1】:
            $allcount = 0;

            $query1 = User::where('sponser_id',$_SESSION['ruserid'])->get('userid');
            $count1 = count($query1);

            $allcount = $allcount + $count1;
            for ($i=2; $i<8; $i++) {
                
            if ($i>2){
                $j = $i-1;
                ${"query".$j} = User::whereIn('sponser_id',${"query".($j-1)})->get('userid');
                
            } 
            ${"query".$i} = User::whereIn('sponser_id',${"query".($i-1)})->get('userid');
            ${"count".$i} = count(${"query".$i});

            $allcount = $allcount + ${"count".$i};
            }

            return $allcount;

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2016-04-07
  • 1970-01-01
  • 2016-05-01
  • 2016-07-17
  • 2020-01-19
  • 1970-01-01
  • 2021-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多