Smile\ElasticsuiteThesaurus\Model\ResourceModel\Thesaurus::saveTermsRelation PHP Method

saveTermsRelation() private method

Saves relation between thesaurus and store
private saveTermsRelation ( Magento\Framework\Model\AbstractModel $object ) : void
$object Magento\Framework\Model\AbstractModel Thesaurus to save
return void
    private function saveTermsRelation(\Magento\Framework\Model\AbstractModel $object)
    {
        $termRelations = $object->getTermsRelations();
        $termRelations = array_filter($termRelations);
        if (is_array($termRelations) && count($termRelations) > 0) {
            $expansionTermLinks = [];
            $referenceTermLinks = [];
            $termId = 0;
            foreach ($termRelations as $termData) {
                $termId++;
                if ($object->getType() === ThesaurusInterface::TYPE_EXPANSION) {
                    $referenceTermLinks[] = ['term_id' => $termId, 'term' => trim(strtolower($termData['reference_term'])), ThesaurusInterface::THESAURUS_ID => (int) $object->getThesaurusId()];
                }
                $termList = explode(",", $termData['values']);
                foreach ($termList as $term) {
                    $expansionTermLinks[] = ['term_id' => $termId, 'term' => trim(strtolower($term)), ThesaurusInterface::THESAURUS_ID => (int) $object->getThesaurusId()];
                }
            }
            $this->deleteThesaurusRelations($object);
            // Saves expansion terms for a thesaurus. Expansion terms are used by expansion AND synonym thesauri.
            $this->getConnection()->insertOnDuplicate($this->getTable(ThesaurusInterface::EXPANSION_TABLE_NAME), $expansionTermLinks, array_keys(current($expansionTermLinks)));
            $this->saveReferenceTerms($object, $referenceTermLinks);
        }
    }