首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >显示有特定标签或类别的帖子

显示有特定标签或类别的帖子
EN

Stack Overflow用户
提问于 2017-09-24 20:25:51
回答 2查看 200关注 0票数 -3

我想要显示具有特定标签或类别的帖子,如我在标题中提到的;例如,我的一个帖子有3个标签"php"," laravel ","regex“我想要获得那些在多对多关系中具有laravel标签的帖子。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-24 20:58:30

首先,确保在模型上设置了正确的关系。然后使用Querying Relationship Existence。因此,您可以:

代码语言:javascript
复制
$posts = Post::whereHas('tags', function ($tags) use ($tagName) {
        $tags->where('name', $tagName);
    })
    ->whereHas('ORMRoute', functions ($routes) use ($routeName) {
        $routes->where('route', $routeName);
    })
    ->get();
票数 0
EN

Stack Overflow用户

发布于 2017-09-24 21:51:21

与whereHas相比,我更喜欢leftJoin,因为whereHas非常慢。

尝试这个查询,看看有什么不同:

代码语言:javascript
复制
$posts = Post::leftJoin('post_tags', 'post_tags.post_id', '=', 'posts.id')
             ->leftJoin('post_routes', 'post_routes.post_id', '=', 'posts.id')
             ->where('name', $tagName)
             ->where('route', $routeName)
             ->get();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46390011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档