Laravel 4,将计算从表格传递到视图

时间:2014-03-07 16:32:13

标签: laravel laravel-4 views

我有一张包含大量数值数据的表格。我有一个名为stats.blade.php的视图,我希望使用表中的数据“按原样”

这是route.php

Route::get('stats', 'StatController@stats');

这是控制器:

public function stats()
{
    $title = "Stats";
    $stats = DB::table('stat_data')->get();
    return View::make('stats')->with('stats', $stats)->with('title',$title);
}

我理解这个简单的过程,并且我能够使用stats视图中表格中的数据。但是我也想操纵表中的数据来创建要在stats视图中使用的新php变量。我在应用程序中创建了一个名为calculate的目录,其中有几个文件可以从这个“stat_data”表中进行大量计算。我正在使用laravel4重新设计这个站点,所以在我刚在页面上调用require_once“path_to_file”之前,我想使用新的计算变量。

我的问题是将app / calculation / files.php中完成的计算变量从stats_table传递到统计数据视图的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

根据MVC模式,你的观点不应该做太多,计算是他们不应该做的事情之一,因为,如果你需要在任何其他地方使用这些计算,你将不得不复制它们和然后你会有重复的代码,可能会有所不同。

你应该做的是创建一个类来处理你的计算并生成一个在你的视图中使用的数组:

public function stats()
{
    $title = "Stats";

    $stats = DB::table('stat_data')->get();

    $stats = new \Calculations\CalculateData($stats);

    return View::make('stats')->with('stats', $stats)->with('title',$title);
}

使用PSR-4和命名空间的最佳方式,例如:Calculations

将命名空间添加到指向您的命名空间类所在的文件夹的composer.json中:

"psr-4": {
    "Calculations\\": "app/calculations"
},

中创建类类'CalculateData'
app/calculations/CalculateData.php

将此作为基本代码:

<?php namespace Calculations;

class CalculateData() {

}

执行

composer dump-autoload

一旦这样作曲家构建你的自动加载psr4命名空间,你就可以了。如果在同一名称空间内创建新类,则不必再次运行它。