假设我有两个模型: 用户和任务
它们的关系如下: 用户可以有很多任务(belongsToMany) 任务可以有很多用户(belongsToMany)
$user = new User();
$task = new Task();
通常,我会做这样的事情:
$user->tasks->attach($task)
但问题是用户和任务没有保存在数据库中。因此,如果我运行上面的最后一个代码,我将获得完整性约束,因为这些模型没有 ID。
我查看了文档,发现有一个方法 associate()
但这需要其中一个具有 ID(保存在数据库中)的模型。
有什么方法可以将一个模型附加到另一个模型,而无需将它们保存在数据库中?
最佳答案
我猜你可以手动调用 setRelation。
$model->setRelation('child', $childInstance);
eLSE
只需实例化即可创建新模型:
$model = new Model;
您可以稍后将其保存到数据库中:
$model->save();
关于laravel - Eloquent:不保存到数据库的模型关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40018464/