LeanMapper\Row::createReferencingDataDifference PHP Method

createReferencingDataDifference() public method

public createReferencingDataDifference ( string $table, string | null $viaColumn = null, Filtering $filtering = null, string | null $strategy = null ) : DataDifference
$table string
$viaColumn string | null
$filtering Filtering
$strategy string | null
return DataDifference
    public function createReferencingDataDifference($table, $viaColumn = null, Filtering $filtering = null, $strategy = null)
    {
        return $this->result->createReferencingDataDifference($table, $viaColumn, $filtering, $strategy);
    }

Usage Example

Example #1
0
 /**
  * Gets current M:N differences
  *
  * @return array
  */
 public function getHasManyRowDifferences()
 {
     $differences = [];
     foreach ($this->getCurrentReflection()->getEntityProperties() as $property) {
         if ($property->hasRelationship() and $property->getRelationship() instanceof Relationship\HasMany) {
             $relationship = $property->getRelationship();
             $difference = $this->row->createReferencingDataDifference($relationship->getRelationshipTable(), $relationship->getColumnReferencingSourceTable(), null, $relationship->getStrategy());
             if ($difference->mayHaveAny()) {
                 $differences[$relationship->getColumnReferencingSourceTable() . ':' . $relationship->getRelationshipTable() . ':' . $relationship->getColumnReferencingTargetTable()] = $difference->getByPivot($relationship->getColumnReferencingTargetTable());
             }
         }
     }
     return $differences;
 }