Skip to content

Commit

Permalink
Merge pull request #140 from FriendsOfCake/mistmatched-condition-aliases
Browse files Browse the repository at this point in the history
Support for relationship conditions with aliases
  • Loading branch information
dakota committed Sep 30, 2020
2 parents 1c1f379 + 42de332 commit 42edd22
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions src/Listener/JsonApiListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -600,8 +600,26 @@ protected function checkValidReverseAssociation(
return false;
}

$reverseConditions = $reverseAssociation->getConditions();
$forwardConditions = $forwardAssociation->getConditions();
/**
* Strip table aliases from the association conditions to prevent cases where a different alias causes
* associations
*/
$stripAliasedConditions = function ($conditions) {
if (!is_array($conditions)) {
return $conditions;
}

$strippedConditions = [];
foreach ($conditions as $field => $condition) {
$field = preg_replace('/.*\.(.*)/', '$1', $field);
$strippedConditions[$field] = $condition;
}

return $strippedConditions;
};

$reverseConditions = $stripAliasedConditions($reverseAssociation->getConditions());
$forwardConditions = $stripAliasedConditions($forwardAssociation->getConditions());

if ($forwardConditions !== $reverseConditions) {
return false;
Expand Down

0 comments on commit 42edd22

Please sign in to comment.