如何加载与 { json:api } 客户端的关系?

How to load relations with { json:api } Client?

我正在使用 {json:api} Client 将 json 解析为 Eloquent 模型。

我有两个模型,CongressSpeaker。一个Congress有很多Speaker.

这是我能够做到的:

$repository = app(App\Repositories\CongressRepository::class);
$document = $repository->all();

$document 是具有以下属性的 CollectionDocument

我想得到第一个Congressspeakers。这是我试过的

$congresses = $document->getData();
$congress = $congresses->first();
$congress->speakers // <- this is null!

为什么 $congress->speakers 为空?我也试过给我们$repository->all(['includes' => 'speakers']); 但这没有区别。

似乎 $congress->speakers 为空,因为关系为空:

我用this package to create the json output. Inside the Schema.php I had to add self::DATA to make the data visible, as explained in the docs.

public function getRelationships($resource, $isPrimary, array $includeRelationships)
{
    return [
        'speakers' => [
            self::SHOW_SELF => true,
            self::SHOW_RELATED => true,
            self::DATA => function () use ($resource) {
                return $resource->speakers;
            },
        ],
    ];
}

我仍然想知道是否可以加载关系,如果 API 中只给出 link