首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >With relation if not null

With relation if not null
EN

Stack Overflow用户
提问于 2019-12-18 14:59:11
回答 1查看 56关注 0票数 0

我有这个select,但我不知道如何只获取事件不为空的寄存器:

代码语言:javascript
复制
$getUsers = User::where('user_id', $userId)
    ->with(['events' => function($query) {
            $query->where('finnish', 0)
    ->orderBy('event_id', 'desc');
        }])
    ->get();

通过这个查询,我得到了这个结果,其中用户还没有满足关系的where条件:

代码语言:javascript
复制
{
    "events": [
        {
            "user_id": 1,
            "event_id": 1,
            "created_at": null,
            "updated_at": null,
            "events": {
                "event_id": 1,
                "name": "test 1"
            }
        },
        {
            "user_id": 1,
            "event_id": 25,
            "created_at": null,
            "updated_at": null,
            "events": null
        },
        {
            "user_id": 1,
            "event_id": 34,
            "created_at": null,
            "updated_at": null,
            "events": null
        }
    ]
}

我只喜欢这样:

代码语言:javascript
复制
{
    "events": [
        {
            "user_id": 1,
            "event_id": 1,
            "created_at": null,
            "updated_at": null,
            "events": {
                "event_id": 1,
                "name": "test 1"
        }
    ]
}

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-18 15:04:16

您可以使用->has('events')查询relationship existence

如果你想要额外的过滤器,这里有whereHas

代码语言:javascript
复制
$getUsers = User::where('user_id', $userId)
    ->whereHas('events', function function($query) {
        $query->where('finnish', 0);
    }
    ->with(['events' => function($query) {
        $query->where('finnish', 0)
            ->orderBy('event_id', 'desc');
    }])
    ->get();
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59386917

复制
相关文章

相似问题

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