Давайте предположим, что в моей базе данных есть следующее соотношение многим к многим полиморфам c.
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()
, он должен извлекать его из базы данных только один раз.