让我们看看这个示例代码:
$activity = new Activity(...);
$company->activities()->save($activity);
dd($company->activities);
此代码采用控制器方法。
如果我运行此代码,我将[]
作为输出。如果我再次运行它,我将获得以前保存的活动。如果我再次运行它,我将获得2(而不是3)活动等。
所以看起来laravel在调用save方法时没有保存关系。我也尝试过使用像$company->push()
这样的东西,但没有成功。
答案 0 :(得分:5)
如果您之前加载了activities
关系(通过急切加载或仅通过访问它),并且它被缓存在模型中,就会发生这种情况。
您可以事先致电load()
来获取更新的集合:
$company->activities()->save($activity);
$company->load('activities');
dd($company->activities);