组织Laravel中的计算代码:模型或控制器?

时间:2013-05-06 22:42:15

标签: php laravel laravel-4

首先要了解我的方式,我是一个前端的人,为了好玩,我正在尝试用Laravel 4学习更多后端的东西。但是我已经失去了自我,并寻找一些指导来获得我朝着正确的方向前进。

我正在制作一个带有体育统计数据(足球)的简单应用程序。我创建了一个测试数据库,其中包含一个表,其中包含一些非常基本的信息,除了团队名称之外的所有整数。在未来,我想将团队转移到另一个表格并建立一些关系,但这里一步一步。

所以我想做的是将数据转换为一些简单的计算,然后将其输出到一个安静的控制器。所以像:

胜+失败+平局=比赛

(wins * 3)+(draw)= points

我的第一个问题是:如何设置代码以便循环遍历表中的所有行并返回每行的计算? 其次:在模型或控制器中执行此操作会更好吗?

1 个答案:

答案 0 :(得分:3)

回答您的第一个问题:

在您的某个数据库表中显示“游戏后”数据之后,您可以通过在您的某个控制器文件(可能是名为“Games_Controller”的控制器)中获取“游戏”数据来开始,如下所示:

public function get_games_list()
{
    $this->layout->nest(
        'content',
        'games.games_list',
        array('games' => Game::getGames())
    );
}

但在此之前,我们需要在您的模型文件(可能是名为“Game”的模型)中添加一些内容,如下所示:

public static function getGames()
{
    return Game::order_by('id')->get();
}

从那里,您可以在视图中使用从getGames()返回的数据(可能是名为“games_list.blade.php”的视图),如下所示:

<?php foreach ($games as $game) : ?>
<?php echo $game->id ?>">
<?php echo $game->result ?>
<?php endforeach ?> 

(其中result可能是数据库表中的“赢/输”数据。)


回答您的第二个问题:

将计算类型代码移动到模型中并不是一个坏主意。但请记住,arguments related to还有“胖模型,瘦小控制器”的想法。


有关详细信息,您可能需要查看此Laravel Blog Tutorial作为Laravel进一步工作的参考!