Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Label.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
16 
20 class Label implements ResolverInterface
21 {
25  private $valueFactory;
26 
30  private $product;
31 
36  public function __construct(ValueFactory $valueFactory, ProductDataProvider $product)
37  {
38  $this->valueFactory = $valueFactory;
39  $this->product = $product;
40  }
41 
45  public function resolve(
46  Field $field,
47  $context,
49  array $value = null,
50  array $args = null
51  ) {
52  if (!isset($value['sku'])) {
53  throw new GraphQlInputException(__('"sku" value should be specified'));
54  }
55 
56  $this->product->addProductSku($value['sku']);
57  $this->product->addEavAttributes(['name']);
58 
59  $result = function () use ($value) {
60  $productData = $this->product->getProductBySku($value['sku']);
62  $productModel = isset($productData['model']) ? $productData['model'] : null;
63  return $productModel ? $productModel->getName() : null;
64  };
65 
66  return $this->valueFactory->create($result);
67  }
68 }
__construct(ValueFactory $valueFactory, ProductDataProvider $product)
Definition: Label.php:36
__()
Definition: __.php:13
$value
Definition: gender.phtml:16
$productData
$productModel
foreach( $_productCollection as $_product)() ?>" class $info
Definition: listing.phtml:52
resolve(Field $field, $context, ResolveInfo $info, array $value=null, array $args=null)