Files
afup/sources/AppBundle/Event/Model/JoinHydrator.php
2019-03-31 11:53:15 +02:00

24 lines
789 B
PHP

<?php
namespace AppBundle\Event\Model;
class JoinHydrator extends HydratorAggregator
{
public function aggregateOn($mainObjectAlias, $joinedObjectAlias, $mainObjectGetter)
{
$this
->callableDataIs(function ($result) use ($joinedObjectAlias) {
return $result[$joinedObjectAlias];
})
->callableIdIs(function ($result) use ($mainObjectAlias, $mainObjectGetter) {
return $result[$mainObjectAlias]->$mainObjectGetter();
})
->callableFinalizeAggregate(function ($result, $aggregate) use ($joinedObjectAlias) {
$result['.aggregation'][$joinedObjectAlias] = array_filter($aggregate);
return $result;
})
;
return $this;
}
}