【发布时间】:2020-04-06 19:08:40
【问题描述】:
假设我的数据库中有以下多对多多态关系。
posts
id - integer
name - string
videos
id - integer
name - string
tags
id - integer
name - string
taggables
tag_id - integer
taggable_id - integer
taggable_type - string
stuff - string
我从数据库中检索帖子。
$post = Post::find(1);
如何在stuff == something 处获取与此帖子相关的标签?我想创建函数,以便每次需要时都可以调用它。
此代码有效:
public function get_my_tag() {
return $post->tags()->wherePivot('stuff', 'something')->first();
}
但每次我调用它时它都会从数据库中检索它。我需要一种将 $tag 存储在 $post 中的方法,所以无论我调用多少次get_my_tag(),它都应该只从数据库中检索一次。
【问题讨论】:
-
我猜你需要使用急切加载
Post::with('tags')->find(1) -
@FelippeDuarte 我不想加载所有标签。只是一个特定的
标签: php laravel many-to-many pivot-table