首页 > 解决方案 > 雄辩 | 使用 with() 导致返回 NULL

问题描述

我正在尝试在 Laravel 中使用 Eloquent 来运行查询。我正在使用该with()函数来从关系中获取结果,但是这总是返回null.

这是我的代码:

Posts::query()
    ->select('id')
    ->with([
        'author:id',
        'category.images:url',
     ]);

使用该函数转储查询getQueryLog(),如果我在具有相同绑定的 SQL 客户端内运行查询,我会得到一个结果,但是响应看起来像这样......

{
    id: 1,
    category: {
       id: 1,
       category_images: null
    }
}

我试过用谷歌搜索这个问题,但真的找不到任何东西。

提前致谢。

标签: phpsqllaraveleloquent

解决方案


您必须在 select 语句中选择外键,让 Eloquent 查询您的关系,如下所示:

Posts::query()
    ->select('id', 'author_id', 'category_id')
    ->with([
        'author:id',
        'category.images:url',
    ]);

推荐阅读