Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
RelationPersister.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Catalog\Model\ProductLink\LinkFactory;
13 
15 {
19  private $relationProcessor;
20 
24  private $linkFactory;
25 
32  public function __construct(Relation $relationProcessor, LinkFactory $linkFactory)
33  {
34  $this->relationProcessor = $relationProcessor;
35  $this->linkFactory = $linkFactory;
36  }
37 
49  public function afterSaveProductLinks(Link $subject, Link $result, $parentId, $data, $typeId)
50  {
51  if ($typeId == GroupedLink::LINK_TYPE_GROUPED) {
52  foreach ($data as $linkData) {
53  $this->relationProcessor->addRelation(
54  $parentId,
55  $linkData['product_id']
56  );
57  }
58  }
59  return $result;
60  }
61 
70  public function aroundDeleteProductLink(Link $subject, \Closure $proceed, $linkId)
71  {
73  $link = $this->linkFactory->create();
74  $subject->load($link, $linkId, $subject->getIdFieldName());
75  $result = $proceed($linkId);
76  if ($link->getLinkTypeId() == GroupedLink::LINK_TYPE_GROUPED) {
77  $this->relationProcessor->removeRelations(
78  $link->getProductId(),
79  $link->getLinkedProductId()
80  );
81  }
82  return $result;
83  }
84 }
load(\Magento\Framework\Model\AbstractModel $object, $value, $field=null)
Definition: AbstractDb.php:339