laravel - Eloquent:不保存到数据库的模型关系

标签 laravel eloquent

假设我有两个模型: 用户和任务

它们的关系如下: 用户可以有很多任务(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/

相关文章:

mysql - eloquent - 查询生成器运行带绑定(bind)的原始 sql

php - 在 Laravel 中构建动态查询 - 如何进行多选项搜索

php - 如何更新 Laravel 5.1 中用户表中的值

Laravel - 从模型急切加载时获取列名

Laravel - 如何查询数据透视表上的关系

javascript - 如何在 Laravel 中使用 npm 正确引用新安装的包的路径?

php - laravel 中返​​回 View 时的 with、compact 和 array 有什么区别

php - Laravel Eloquent 查找组合键

php - Laravel 5 全局增删改查类

laravel - 获取集合的第一个、第二个、第三个元素