2014-01-13 89 views
2

我正在构建一个小应用程序使用Laravel 4,主要是为了我自己的学习,其目的是根据他们的付款计算一群人(如室友)之间的欠款。在哪里把具体的逻辑在laravel应用程序

我有一点CakePHP的经验,所以我想用我的MVC架构的知识来做到这一点。

忽略所有的验证,迁移表等,这里是我的数据库架构:

database schema

所以基本上,说一个“大户”,使代表小组的支付将有payers_payments纪录对于每个付款人的付款金额以及是否包含在付款中(pays (bool))。 payments将具有该付款的一般信息。付款总额是与该付款相关的payers_payments.amount的总和。

在这一点上,随时阻止我,告诉我我的分贝设计是垃圾,可以做一个更好的方式。

我的理解是,“商业逻辑”(从数据库中获取东西)显然会进入模型。

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

enter image description here

本质上几calcualations都需要得到这种形式的数据。他们应该去哪里?任何更好地构建应用程序的建议?假设我拥有所有的基础控制器和模型。

+0

在模型中。任何数据处理,特别是来自数据库的处理都应该在Model中进行。 – SaidbakR

+0

我使用服务层来执行此逻辑,只需添加您自己的逻辑并让Composer/Laravel自动加载它。 –

+0

@AnonySterling你能详细解释一下吗?如何使用服务层? – harryg

回答

1

你可以Eloquent定义relationship data model,也可以在模型处理这些数据,但对你的表的关系结构,让我们来看看你的表的关系,每次支付有许多付款人和每一个纳税人都多付款!所以这是Many To Manyrelationship,最后这个表格形成第三个表格,使得这种关系成为可能payers-payments!让我们看看结果!

付款人型号

class Payer extends Eloquent { 

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

现在你有Payements在您付款模式及付款可以通过ID来访问:

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

上有口才文档的例子很多。

相关问题