这是我的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);
}
这是我的app \ Calculations \ Season3 \ Stats3:
<?php namespace Calculations\Season3;
class Stats3
{
public function getStats3($stats)
{
foreach ($stats as $stat)
{
$variable1 = ...some calculation
.
.
.
$variable999 = ...some calculaiton
}
这是我的路线:
Route::get('stats', 'StatController@stats');
我希望能够在带有回声的stats.blade.php视图中的Stats3类中使用这些变量,
{{ $variable999 }}
我能够计算所有变量但是当我尝试在stats.blade.php中使用它时,我得到一个未定义的变量。以前我可以使用require_once"file"
来获取这些变量。我现在想用MVC / laravel方法做这个,但似乎无法掌握它是如何完成的。
修改 在StatsController stats()中我有
$stats = $stats->getStats3($table);
return View::make('stats')->with('stats', $stats)->with('title',$title);
我现在看到为什么我无法从视图中访问Stats3()类中的变量。我应该将这些变量存储在一个数组中,并将其传递给控制器的视图。构建该数组(具有数百个变量)并将其传递给视图的最佳方法是什么?
答案 0 :(得分:0)
你可以简单地说:
foreach ($stats as $stat)
{
View::share('variable1', ...some calculation);
.
.
.
View::share('variable999', ...some calculation);
}
您应该能够在视图中使用这些变量。
答案 1 :(得分:0)
我认为我不能那样做。我的计算设置与我提出的有点不同
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)
{
View::share('variable1', ...some calculation);
.
.
.
View::share('variable999', ...some calculation);
}