我有一个关于Laravel 4中关注点分离的问题。
让我们举一个例子来说明我的问题。
我的流程是:记录发票
所以,我会有2个控制器:发票和客户
为了分离逻辑,是否正确执行包含Invoice和Customer控制器的Service类,并且在此服务中有一个方法recordInvoice()可以调用发票和客户的方法?
如何使控制器上层? (模型 - >控制器 - >服务) 你知道如何在Laravel 4中做到这一点吗?
由于
答案 0 :(得分:1)
我相信你的问题是,如何将业务逻辑与控制器分开。在您的示例中,您有两个控制器需要执行记录发票的相同业务逻辑。
有几种方法可以做到这一点。您可以使用Eloquent ORM并将方法添加到模型发票类中。在这种情况下,两个控制器都可以访问它或者您可以创建一个库并添加一个只管理发票的类。
这是一个关于创建库的好教程:http://fideloper.com/laravel-4-application-setup-app-library-autoloading
如果您想了解有关模特的更多信息,请阅读laravel文档:http://laravel.com/docs/eloquent
如果我离开基地,请告诉我。我会在评论中提出,但我还没有足够的声誉。
答案 1 :(得分:0)
我认为您现在必须考虑“依赖注入”。 Invoice
对象与Customer
有依赖关系。因此,您可以创建在其构造函数中接受Invoice
对象的Customer
类。发票对象可以具有函数create()
,该函数可以在创建Customer
时操纵Customer
以获取有关Invoice
的信息