protected function updatePivotRelation(string $relation)
    {
        $hashes = $this->getEntityHashesFromRelation($relation);

        $cachedAttributes = $this->getCachedRawAttributes();

        if (array_key_exists($relation, $cachedAttributes)) {
            // Compare the two array of hashes to find out existing
            // pivot records, and the ones to be created.
            $new = array_diff($hashes, array_keys($cachedAttributes[$relation]));
            $existing = array_intersect($hashes, array_keys($cachedAttributes[$relation]));
        } else {
            $existing = [];
            $new = $hashes;
        }

        if (count($new) > 0) {
            $pivots = $this->getRelatedAggregatesFromHashes($new, $relation);

            $this->entityMap->$relation($this->getEntityObject())->createPivots($pivots);
        }

        if (count($existing) > 0) {
            foreach ($existing as $pivotHash) {
                $this->updatePivotIfDirty($pivotHash, $relation);
            }
        }
    }
protected function updatePivotRelation(string $relation)
    {
        $hashes = $this->getEntityHashesFromRelation($relation);

        $cachedAttributes = $this->getCachedRawAttributes();

        if (array_key_exists($relation, $cachedAttributes)) {
            // Compare the two array of hashes to find out existing
            // pivot records, and the ones to be created.
            $new = array_diff($hashes, array_keys($cachedAttributes[$relation]));
            $existing = array_intersect($hashes, array_keys($cachedAttributes[$relation]));
        } else {
            $existing = [];
            $new = $hashes;
        }

        if (count($new) > 0) {
            $pivots = $this->getRelatedAggregatesFromHashes($new, $relation);

            $this->entityMap->$relation($this->getEntityObject())->createPivots($pivots);
        }

        if (count($existing) > 0) {
            foreach ($existing as $pivotHash) {
                $this->updatePivotIfDirty($pivotHash, $relation);
            }
        }
    }
protected function updatePivotRelation ( string $ relation ) { $ hashes = $ this -> getEntityHashesFromRelation ( $ relation ) ; $ cachedAttributes = $ this -> getCachedRawAttributes ( ) ; if ( array_key_exists ( $ relation , $ cachedAttributes ) ) { // Compare the two array of hashes to find out existing // pivot records, and the ones to be created. $ new = array_diff ( $ hashes , array_keys ( $ cachedAttributes [ $ relation ] ) ) ; $ existing = array_intersect ( $ hashes , array_keys ( $ cachedAttributes [ $ relation ] ) ) ; } else { $ existing = [ ] ; $ new = $ hashes ; } if ( count ( $ new ) > 0 ) { $ pivots = $ this -> getRelatedAggregatesFromHashes ( $ new , $ relation ) ; $ this -> entityMap -> $ relation ( $ this -> getEntityObject ( ) ) -> createPivots ( $ pivots ) ; } if ( count ( $ existing ) > 0 ) { foreach ( $ existing as $ pivotHash ) { $ this -> updatePivotIfDirty ( $ pivotHash , $ relation ) ; } } }
Update Single pivot relationship.

@param string $relation

@return void
Update Single pivot relationship .