首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel Eloquent ()选择特定列时不返回结果

Laravel Eloquent ()选择特定列时不返回结果
EN

Stack Overflow用户
提问于 2020-03-30 11:47:45
回答 1查看 23关注 0票数 1

假设我有2个模型,Category和POI,其中1个Category可以有多个POI。

代码语言:javascript
复制
$categoryDetails = Category::with([
    'pois' => function ($query) {
        $query->where('is_poi_enabled', true);
    },
])->findOrFail($id);

上面的查询返回特定类别及其POI的结果。

但是,使用以下查询:

代码语言:javascript
复制
$query->select('id', 'name')->where('is_poi_enabled', true);

POI在集合中变为空。

你知道为什么会发生这种事吗?何时将select子句添加到雄辩的ORM?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-30 11:53:51

在执行select操作时,需要获取关系本地键或主键。对于包含category_id的示例POIs表,则需要选择它,请尝试以下操作:

代码语言:javascript
复制
$categoryDetails = Category::with([
    'pois' => function ($query) {
        $query->select(['id', 'category_id', 'is_poi_enabled'])
       ->where('is_poi_enabled', true);
    },
])->findOrFail($id);

祝好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60923777

复制
相关文章

相似问题

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