Laravel中使用save()保存Post时能否预加载关联的User模型?
解决方案
可以通过手动设置关联关系的方式,避免额外的数据库查询。具体做法是在保存Post后,调用setRelation方法将已有的User实例绑定到Post模型上:
$user = User::find(1); $post = new Post(); $user->posts()->save($post); // 手动关联User实例到Post,无需查询数据库 $post->setRelation('user', $user); // 此时访问$post->user不会触发新的数据库查询 $userPost = $post->user;
Laravel的setRelation方法会直接将模型实例存入当前模型的关联缓存中,后续访问该关联时就会直接使用内存中的实例,而不会再去数据库查询。
内容的提问来源于stack exchange,提问作者Carlos
相关产品推荐
相关产品推荐

