一对一和一对多的多态关联怎么更新关系呢?

文档上有个belongsTo的关系可以通过associate更新

请问多态怎么将两个已经创建存在的模型关联在一起呢?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案
use App\Post;
use App\Comment;

// 找到已存在的 Post 和 Comment 模型实例
$post = Post::find(1);
$comment = Comment::find(1);

// 手动设置多态关联的外键和类型
$comment->commentable_id = $post->id;
$comment->commentable_type = get_class($post);

// 保存关联
$comment->save();
3个月前 评论
讨论数量: 9

捞一捞,来大佬

1年前 评论

一对一

举例如 user 跟 userinfo 模型的更新

$user = User::with('info')->find(1);
$user->nickname = "看上隔壁小花了啦";
$user->info->description = "大家好,我是某某某";
$user->push();

一对多

一般不会进行批量更新,可以使用这个包 github.com/mavinoo/laravelBatch

多态关联

模型关联《Laravel 9 中文文档》

1年前 评论
UpGod (楼主) 1年前
阿神

同步关联不是用sync吗 ,翻翻文档啊

1年前 评论
UpGod (楼主) 1年前

可以使用 saveMany 方法。将 new xxModel 改为 xxMode::updateOrCreate

$post = Post::find(1);
$post->comments()->saveMany([
     Comment::updateOrCreate(['id'=1],['message' => 'A new comment.']),
     Comment::updateOrCreate(['id'=2],['message' => 'Another new comment.']),
]);
3个月前 评论
UpGod (楼主) 3个月前
hetaoov (作者) 2个月前
use App\Post;
use App\Comment;

// 找到已存在的 Post 和 Comment 模型实例
$post = Post::find(1);
$comment = Comment::find(1);

// 手动设置多态关联的外键和类型
$comment->commentable_id = $post->id;
$comment->commentable_type = get_class($post);

// 保存关联
$comment->save();
3个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!