Database 在Laravel中将数百个变量从控制器传递到视图
这是我的StatsController: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::
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);
}