创建新的Master-Detail对象的最佳实践(Laravel 5.1)

时间:2016-08-24 16:15:53

标签: laravel-5 laravel-5.1 extend master-detail traits

我的应用程序中有2个类都有自己的Controller。 周 - > WeekController 日 - > DayController

创建新周后,我还想为该周创建5个(工作)日。

此时我从WeekController中的create方法调用DayController中的create方法:

app('App\Http\Controllers\DayContoller')->create($week->id);

This post提到这是一种不好的做法。然而,在我的情况下,提供的替代方案似乎并不好: 一周并没有真正延长一天,在这种情况下使用特性对我来说也会感到陌生。

所以我想知道,在这种情况下,最好的解决方案是什么。我很确定这是非常普遍的事情。

UPDATE :不太确定这是否更好,但我已经重写如下: 我现在在WeekController的create方法中注入DayController。

create(DayController $dayController, $id)

UPDATE2 :我在我的路线中写了一个闭包函数,我调用了一个新的书面服务。

function(CreateWeek $createWeek, $id) 
{
    $createWeek->createWeekWithDays($id);
} ]);

在这个服务中,我有一个构造函数来实例化我的2个控制器

public function __construct(WeekController $weekController, DayController $dayController)
{
    $this->weekController = $weekController;
    $this->dayController = $dayController;
}

最后是createWeekWithDays方法:

public function createWeekWithDays($id)
{
    //Create the week
    $newId = $this->weekController->create($id);

    // Create the days
    $this->dayController->createDays($newId);  
}

我不知道什么是最好的解决方案......

0 个答案:

没有答案