Contentful / Laravel Delivery API setInclude не работает должным образом - PullRequest
0 голосов
/ 07 июня 2018

При использовании содержательного laravel sdk набор включает в себя не получение каких-либо активов, которые принадлежат записям, которые я получаю.Код ниже (мой):

    public function index()
{
    $query = $this->query
        ->setContentType('gallery')
        ->setInclude(10);

    $entry = $this->client->getEntries($query);

    if (!$entry) {
        abort(404);
    }

    $data = ['galleries' => $entry];

    return view('welcome', ['data' => $data]);
}

Спорный пример:

    // contentful.php 3.0

$client = new Contentful\Delivery\Client(
  '<content_delivery_api_key>',
  '<space_id>',
  '<environment_id>' // Defaults to "master" if ommitted
);

$query = (new Contentful\Delivery\Query())
    ->setInclude(2);

$entries = $client->getEntries($query);

мои результаты:

[enter image description here]

Iожидайте, что для PreviewImage и массива изображений будут содержаться «поля», содержащие местоположение файла.Я получаю только 'sys'.Я не могу понять, почему include не получает эти данные.Если я установил setInclude в 20, сверх лимита я получаю ошибку.Ниже

enter image description here

Что мне делать по-другому?Я достиг желаемых результатов в проекте внешнего интерфейса javascript, но с laravel я ничего не получаю.

1 Ответ

0 голосов
/ 27 июля 2018

include на самом деле работает нормально.Внутренне связанные записи / активы представляются с использованием объекта Link, который преобразуется в фактическую запись / актив, как только вы получаете доступ к полю (в вашем случае это делается с помощью $entry->getPreviewImage(), который возвращает объект Asset, которыйбыл загружен в ваш предыдущий запрос).

Это означает, что если вы сбросите запись, вы не увидите фактический объект, который вы ожидаете, в поле previewImage, но все будет работать нормально, если при регулярном использовании.

...