我的应用程序中有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);
}
我不知道什么是最好的解决方案......