用 Laravel 中的所有可能实例填充数据透视表


fill a pivot table with all possible instances in laravel

我有两个表:日期和时间这些表彼此之间具有 N:N 关系。所以我为他们使用了一个数据透视表:days_times
在我看来,单击时需要一个按钮,用所有可能的实例填充数据透视表。例如,如果天中有 2 条记录,时间中有 2 条记录,则处理后的数据透视表应有 4 条记录:

day_id | time_id
1 | 1
1 | 2
2 | 1
2 | 2

让我们考虑一个像ScheduleController@fill想要处理这个过程的操作。我应该如何实现这一点?

这是我

的回答,不知道有没有更好的解决方案:

public function fill(){
    $days = Day::all();
    foreach($days as $day)
    {
        $times = Time::all();
        foreach($times as $time)
        {
            $day->times()->attach($time->id);
        }
    }
}

我知道这效率不高,但至少它有效。