我有两个对象,比如Post
和Tag
,它们具有多对多的关系。
根据标签集合,我想选择与(1)任何标签匹配的所有帖子或(2)集合中的所有标签。
是否有一种简单的方法可以在Laravel中执行这些查询(最好使用Eloquent)?
答案 0 :(得分:-1)
您查询所需的标签,然后您可以使用
循环浏览每个标签帖子$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;
}
}