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

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

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案
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();
1年前 评论
讨论数量: 9

捞一捞,来大佬

2年前 评论

一对一

举例如 user 跟 userinfo 模型的更新

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

一对多

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

多态关联

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

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

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

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

可以使用 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.']),
]);
1年前 评论
UpGod (楼主) 1年前
hetaoov (作者) 1年前
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();
1年前 评论

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