Skip to content

Commit 641a17e

Browse files
committed
dataprovider included
1 parent 4db7a91 commit 641a17e

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

src/Serializer.php

+5-4
Original file line numberDiff line numberDiff line change
@@ -242,15 +242,16 @@ protected function serializeDataProvider($dataProvider)
242242
if ($this->request->getIsHead()) {
243243
return null;
244244
} else {
245-
$models = [];
245+
$models = $dataProvider->getModels();
246+
$data = [];
246247

247-
foreach ($dataProvider->getModels() as $model) {
248+
foreach ($models as $model) {
248249
if ($model instanceof ResourceInterface) {
249-
$models[] = $this->serializeModel($model);
250+
$data[] = $this->serializeModel($model);
250251
}
251252
}
252253

253-
$result = ['data' => $models];
254+
$result = ['data' => $data];
254255

255256
$included = $this->serializeIncluded($models);
256257
if (!empty($included)) {

tests/SerializerTest.php

+20
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,26 @@ public function testIncludedDuplicates()
185185
$includedModel
186186
]
187187
], $serializer->serialize($model));
188+
$this->assertSame([
189+
'data' => [$compoundModel],
190+
'included' => [
191+
$includedModel
192+
],
193+
'links' => [
194+
'self' => ['href' => '/index.php?r=&include=extra-field1%2Cextra-field2&page=1']
195+
],
196+
'meta' => [
197+
'total-count' => 1,
198+
'page-count' => 1,
199+
'current-page' => 1,
200+
'per-page' => 20
201+
]
202+
], $serializer->serialize(new ArrayDataProvider([
203+
'allModels' => [$model],
204+
'pagination' => [
205+
'route' => '/',
206+
],
207+
])));
188208
}
189209

190210
public function dataProviderSerializeDataProvider()

0 commit comments

Comments
 (0)