在laravel应用程序中放置特定逻辑的位置

时间:2014-01-13 15:48:02

标签: php laravel laravel-4

我正在使用Laravel 4构建一个小应用程序,主要用于我自己的学习,其目的是根据付款计算一组人(如室友)之间的欠款。

我对CakePHP有一些经验,所以我正在尝试使用我的MVC架构知识来正确地做到这一点。

忽略所有Auth,迁移表等,这是我的数据库模式:

database schema

基本上,假设一个“付款人”代表该集团付款,每个付款人payers_payments会有一个记录,其中包含付款金额以及是否包含在付款中{{1} }})。 pays (bool)将获得该付款的一般信息。付款总额是与该付款相关的payments的总和。

此时请随意阻止我,告诉我我的数据库设计是垃圾,可以做得更好。

我的理解是“业务逻辑”(从数据库中获取内容)显然会进入模型。

我应该如何构建我的应用程序,以便我可以生成一个“摘要”页面,其中包含所有付款与付款人的声明。我想制作这样的东西(用纯PHP版本制作):

enter image description here

基本上需要进行一些计算才能获得此表单中的数据。他们应该去哪儿?有关构建应用程序的任何建议更好吗?假设我有所有基本控制器和模型。

1 个答案:

答案 0 :(得分:1)

您可以在Eloquent上定义relationship data model,也可以在模型中处理该数据,但是关于您的表格关系结构,让我们看一下您的表格关系,每笔付款都有很多付款方,每个付款人都有很多付款!所以这是Many To Many relationship,最后这些表形成了第三个表格,使这种关系成为可能payers-payments!所以让我们看看结果!

付款人模式

class Payer extends Eloquent {

    public function Payments()
    {
       return $this->belongsToMany('Payments');
    }
}

现在您的付款人模型中有付款,付款可以通过ID访问:

$Payments = Payer::find(1)->Payments;

Eloquent文档中有很多例子。