Skip to content

Commit 6588700

Browse files
author
Munkh-Ulzii Balidar
committed
28584 fix mismatched variable name, modify array_merge in loop
1 parent f6e2e29 commit 6588700

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

app/code/Magento/CatalogGraphQl/Model/AttributesJoiner.php

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ public function __construct(array $fieldToAttributeMap = [])
4646
*
4747
* @param FieldNode $fieldNode
4848
* @param AbstractCollection $collection
49-
* @param ResolveInfo $resolverInfo
49+
* @param ResolveInfo $resolveInfo
5050
* @return void
5151
*/
52-
public function join(FieldNode $fieldNode, AbstractCollection $collection, ResolveInfo $resolverInfo): void
52+
public function join(FieldNode $fieldNode, AbstractCollection $collection, ResolveInfo $resolveInfo): void
5353
{
54-
foreach ($this->getQueryFields($fieldNode, $resolverInfo) as $field) {
54+
foreach ($this->getQueryFields($fieldNode, $resolveInfo) as $field) {
5555
$this->addFieldToCollection($collection, $field);
5656
}
5757
}
@@ -60,26 +60,25 @@ public function join(FieldNode $fieldNode, AbstractCollection $collection, Resol
6060
* Get an array of queried fields.
6161
*
6262
* @param FieldNode $fieldNode
63-
* @param ResolveInfo $resolverInfo
63+
* @param ResolveInfo $resolveInfo
6464
* @return string[]
6565
*/
6666
public function getQueryFields(FieldNode $fieldNode, ResolveInfo $resolveInfo): array
6767
{
6868
if (null === $this->getFieldNodeSelections($fieldNode)) {
6969
$query = $fieldNode->selectionSet->selections;
7070
$selectedFields = [];
71+
$fragmentFields = [];
7172
/** @var FieldNode $field */
7273
foreach ($query as $field) {
7374
if ($field->kind === NodeKind::INLINE_FRAGMENT) {
74-
$inlineFragmentFields = $this->addInlineFragmentFields($resolveInfo, $field);
75-
$selectedFields = array_merge($selectedFields, $inlineFragmentFields);
75+
$fragmentFields[] = $this->addInlineFragmentFields($resolveInfo, $field);
7676
} elseif ($field->kind === NodeKind::FRAGMENT_SPREAD &&
7777
($spreadFragmentNode = $resolveInfo->fragments[$field->name->value])) {
7878

7979
foreach ($spreadFragmentNode->selectionSet->selections as $spreadNode) {
8080
if (isset($spreadNode->selectionSet->selections)) {
81-
$fragmentSpreadFields = $this->getQueryFields($spreadNode, $resolveInfo);
82-
$selectedFields = array_merge($selectedFields, $fragmentSpreadFields);
81+
$fragmentFields[] = $this->getQueryFields($spreadNode, $resolveInfo);
8382
} else {
8483
$selectedFields[] = $spreadNode->name->value;
8584
}
@@ -88,6 +87,9 @@ public function getQueryFields(FieldNode $fieldNode, ResolveInfo $resolveInfo):
8887
$selectedFields[] = $field->name->value;
8988
}
9089
}
90+
if ($fragmentFields) {
91+
$selectedFields = array_merge($selectedFields, array_merge(...$fragmentFields));
92+
}
9193
$this->setSelectionsForFieldNode($fieldNode, array_unique($selectedFields));
9294
}
9395

@@ -113,9 +115,7 @@ private function addInlineFragmentFields(
113115
if ($field->kind === NodeKind::INLINE_FRAGMENT) {
114116
$this->addInlineFragmentFields($resolveInfo, $field, $inlineFragmentFields);
115117
} elseif (isset($field->selectionSet->selections)) {
116-
if (is_array($queryFields = $this->getQueryFields($field, $resolveInfo))) {
117-
$inlineFragmentFields = array_merge($inlineFragmentFields, $queryFields);
118-
}
118+
continue;
119119
} else {
120120
$inlineFragmentFields[] = $field->name->value;
121121
}

0 commit comments

Comments
 (0)