Database 在Laravel中将数百个变量从控制器传递到视图

Database 在Laravel中将数百个变量从控制器传递到视图,database,view,laravel,controller,Database,View,Laravel,Controller,这是我的StatsController: public function stats() { $title = "Stats"; $table = DB::table('stat_data')->get(); $stats = new \Calculations\Season3\Stats3(); $stats = $stats->getStats3($table); return View::

这是我的StatsController:

public function stats()
    {
        $title = "Stats";
        $table = DB::table('stat_data')->get();
        $stats = new \Calculations\Season3\Stats3();
        $stats = $stats->getStats3($table); 
        return View::make('stats')->with('stats', $stats)->with('title',$title);
    }
这是我的应用程序\Calculations\Season3\Stats3:

<?php namespace Calculations\Season3;

class Stats3
{
    public function getStats3($stats)
    {
        foreach ($stats as $stat) 
                {
                  $variable1 = ...some calculation
                    .
                    .
                    .
                   $variable999 = ...some calculaiton
}
我希望能够在stats.blade.php视图中的Stats3类中使用这些变量,并使用echo,
{{$variable999}
我能够计算所有变量,但是当我尝试在stats.blade.php中使用它们时,我得到了一个未定义的变量。以前我可以使用
require\u once“file”
获得这些变量。我现在想用MVC/laravel方法来实现这一点,但似乎无法理解它是如何实现的

编辑 在StatsController stats()中,我有

现在我明白了为什么不能从视图中访问Stats3()类中的变量。我应该将这些变量存储在一个数组中,并将其从控制器传递给视图。构建该数组(包含数百个变量)并将其传递给视图的最佳方法是什么?

您可以简单地:

foreach ($stats as $stat) 
{
   View::share('variable1', ...some calculation);
   .
   .
   .
   View::share('variable999', ...some calculation);
}
foreach ($stats as $stat) 
{
   View::share('variable1', ...some calculation);
   .
   .
   .
   View::share('variable999', ...some calculation);
}

您应该能够在视图中使用这些变量。

我想我做不到。我的计算设置有点不同,然后我介绍了它们

foreach ($stats as $stat) {
        if($stat->season=="3" && $stat->playoff=="No")
        {
            if($stat->player=="Chris B"){       

    //games played
                if(!isset($chrisGamesPlayed3)) {
                    $chrisGamesPlayed3=1;
                } else{     
                    $chrisGamesPlayed3++;
                }

    //wins
                if($stat->result == "Win") {
                    if(!isset($chrisWins3)) {
                        $chrisWins3=1;
                    } else{
                        ++$chrisWins3;
                    }
                }

    //losses
                if($stat->result == "Loss") {
                    if(!isset($chrisLoss3)) {
                        $chrisLoss3=1;
                    } else{
                        $chrisLoss3++;
                    }
                }   
                          .
                          .
                          .
该表是个人游戏统计数据。我所做的计算是季节平均数。这只是代码的一小部分。每个球员有大约25个赛季统计数据,共有8名球员。我的变量似乎太嵌套在if语句中,无法执行类似的操作

foreach ($stats as $stat) {
        if($stat->season=="3" && $stat->playoff=="No")
        {
            if($stat->player=="Chris B"){       

    //games played
                if(!isset($chrisGamesPlayed3)) {
                    $chrisGamesPlayed3=1;
                } else{     
                    $chrisGamesPlayed3++;
                }

    //wins
                if($stat->result == "Win") {
                    if(!isset($chrisWins3)) {
                        $chrisWins3=1;
                    } else{
                        ++$chrisWins3;
                    }
                }

    //losses
                if($stat->result == "Loss") {
                    if(!isset($chrisLoss3)) {
                        $chrisLoss3=1;
                    } else{
                        $chrisLoss3++;
                    }
                }   
                          .
                          .
                          .
foreach ($stats as $stat) 
{
   View::share('variable1', ...some calculation);
   .
   .
   .
   View::share('variable999', ...some calculation);
}