diff --git a/src/flextype/Foundation/Entries/Fields/EntriesField.php b/src/flextype/Foundation/Entries/Fields/EntriesField.php index 45ac6546..46db128d 100644 --- a/src/flextype/Foundation/Entries/Fields/EntriesField.php +++ b/src/flextype/Foundation/Entries/Fields/EntriesField.php @@ -14,12 +14,23 @@ if (flextype('registry')->get('flextype.settings.entries.fields.entries.fetchCol // Get fetch. $original = flextype('entries')->getStorage('fetch'); + switch (flextype('registry')->get('flextype.settings.entries.fields.entries.fetchSingle.result')) { + case 'toArray': + $resultTo = 'toArray'; + break; + + case 'toObject': + default: + $resultTo = 'copy'; + break; + } + // Modify fetch. foreach (flextype('entries')->getStorage('fetch.data.entries.fetchCollection') as $field => $body) { $data[$field] = flextype('entries')->fetchCollection($body['id'], - isset($body['options']) ? - $body['options'] : - []); + isset($body['options']) ? + $body['options'] : + [])->{$resultTo}(); } // Save fetch. @@ -36,12 +47,23 @@ if (flextype('registry')->get('flextype.settings.entries.fields.entries.fetchSin // Get fetch. $original = flextype('entries')->getStorage('fetch'); + switch (flextype('registry')->get('flextype.settings.entries.fields.entries.fetchSingle.result')) { + case 'toArray': + $resultTo = 'toArray'; + break; + + case 'toObject': + default: + $resultTo = 'copy'; + break; + } + // Modify fetch. foreach (flextype('entries')->getStorage('fetch.data.entries.fetchSingle') as $field => $body) { $data[$field] = flextype('entries')->fetchSingle($body['id'], - isset($body['options']) ? - $body['options'] : - []); + isset($body['options']) ? + $body['options'] : + [])->{$resultTo}(); } // Save fetch. diff --git a/src/flextype/settings.yaml b/src/flextype/settings.yaml index 96a3f2ab..e19e220d 100644 --- a/src/flextype/settings.yaml +++ b/src/flextype/settings.yaml @@ -62,8 +62,10 @@ entries: entries: fetchCollection: enabled: true + result: toObject fetchSingle: enabled: true + result: toObject slug: enabled: true published_at: diff --git a/tests/Foundation/Entries/Fields/fixtures/entries/catalog/entry.md b/tests/Foundation/Entries/Fields/fixtures/entries/catalog/entry.md index 18f97a0e..f9003285 100644 --- a/tests/Foundation/Entries/Fields/fixtures/entries/catalog/entry.md +++ b/tests/Foundation/Entries/Fields/fixtures/entries/catalog/entry.md @@ -1,6 +1,6 @@ --- title: Catalog -visibility: draft +visibility: visible entries: fetchSingle: label1: