浏览代码

handle API response missing sections

Olivier Massot 5 年之前
父节点
当前提交
70ddb7347b
共有 1 个文件被更改,包括 10 次插入7 次删除
  1. 10 7
      ot_templating/Classes/Domain/Repository/BaseApiRepository.php

+ 10 - 7
ot_templating/Classes/Domain/Repository/BaseApiRepository.php

@@ -45,20 +45,23 @@ abstract class BaseApiRepository extends Repository implements LoggerAwareInterf
     protected function getApiRecords(string $uri, $params = []) {
     protected function getApiRecords(string $uri, $params = []) {
         $body = $this->getJson($uri, $params);
         $body = $this->getJson($uri, $params);
 
 
-        $page = (int)$params['page'] ?? 1;
+        $page = (int)($params['page'] ?? 1);
 
 
         // build up the members
         // build up the members
         $members = [];
         $members = [];
-        foreach ($body['hydra:member'] as $record) {
-            $instance = $this->memberToObject($record);
-            if ($instance != null) {
-                $members[] = $instance;
+
+        if (is_array($body['hydra:member'])) {
+            foreach ($body['hydra:member'] as $record) {
+                $instance = $this->memberToObject($record);
+                if ($instance != null) {
+                    $members[] = $instance;
+                }
             }
             }
         }
         }
 
 
         return new ApiPagedCollection(
         return new ApiPagedCollection(
-            (int)$body['hydra:totalItems'],
-            (int)$body['hydra:itemsPerPage'],
+            (int)($body['hydra:totalItems'] ?? 0),
+            (int)($body['hydra:itemsPerPage'] ?? 0),
             $page,
             $page,
             $members
             $members
         );
         );