我有两个对象,比如说Post
和Tag
一个多对多的关系。
基于标签集合,我想选择与(1)任何标签或(2)集合中的所有标签匹配的所有帖子。
有没有一种简单的方法可以在 Laravel 中执行这些查询(最好使用 Eloquent)?
我有两个对象,比如说Post
和Tag
一个多对多的关系。
基于标签集合,我想选择与(1)任何标签或(2)集合中的所有标签匹配的所有帖子。
有没有一种简单的方法可以在 Laravel 中执行这些查询(最好使用 Eloquent)?
你查询你想要的标签,然后你可以遍历每个标签帖子
$tags = Tag::where('name','=','Laravel 4')->get();
foreach($tags as $tag)
{
foreach($tag->posts as $post)
{
echo $post->name;
}
}
这是假设您有适当的关系和数据透视表设置。
您还可以根据某些帖子急切加载某些标签...
$posts = Post::where('name','=','Some post name')
->with(array('tags' => function($query)
{
$query = $query->where('tag_name','=','Laravel');
}))->get();
foreach($posts as $post)
{
foreach($post->tags as $tag)
{
echo $tag->tag_name;
}
}