Skip to content
This repository was archived by the owner on Jan 21, 2020. It is now read-only.

Commit 825befa

Browse files
committed
Merge branch 'hotfix/map-values'
Close #26
2 parents 46dbcda + 6de8b17 commit 825befa

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/ApiFactory.php

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -354,15 +354,16 @@ public function createService(Api $api, $serviceName)
354354
* @param string $prefix To unwind nesting of fields
355355
* @return array
356356
*/
357-
private function mapFields($fields, $prefix = '')
357+
private function mapFields(array $fields, $prefix = '')
358358
{
359359
if (isset($fields['name'])) {
360360
/// detect usage of "name" as a field group name
361-
if (isset($fields['name']['name'])) {
361+
if (is_array($fields['name']) && isset($fields['name']['name'])) {
362362
return $this->mapFields($fields['name'], 'name');
363363
}
364+
364365
if ($prefix) {
365-
$fields['name'] = "$prefix/{$fields['name']}";
366+
$fields['name'] = sprintf('%s/%s', $prefix, $fields['name']);
366367
}
367368
return array($fields);
368369
}
@@ -372,11 +373,12 @@ private function mapFields($fields, $prefix = '')
372373
foreach ($fields as $idx => $field) {
373374
if (isset($field['type']) && is_subclass_of($field['type'], 'Zend\InputFilter\InputFilterInterface')) {
374375
$filteredFields = array_diff_key($field, array('type' => 0));
375-
$fullindex = $prefix ? "$prefix/$idx" : $idx;
376+
$fullindex = $prefix ? sprintf('%s/%s', $prefix, $idx) : $idx;
376377
$flatFields = array_merge($flatFields, $this->mapFields($filteredFields, $fullindex));
377-
} else {
378-
$flatFields = array_merge($flatFields, $this->mapFields($field, $prefix));
378+
continue;
379379
}
380+
381+
$flatFields = array_merge($flatFields, $this->mapFields($field, $prefix));
380382
}
381383

382384
return $flatFields;
@@ -386,7 +388,7 @@ private function mapFields($fields, $prefix = '')
386388
* @param array $fieldData
387389
* @return Field
388390
*/
389-
private function getField($fieldData)
391+
private function getField(array $fieldData)
390392
{
391393
$field = new Field();
392394

@@ -401,6 +403,7 @@ private function getField($fieldData)
401403

402404
$required = isset($fieldData['required']) ? (bool) $fieldData['required'] : false;
403405
$field->setRequired($required);
406+
404407
return $field;
405408
}
406409

0 commit comments

Comments
 (0)