Class Atk4\Data\Model\AggregateModel

extends Model

AggregateModel model allows you to query using "group by" clause on your existing model. It's quite simple to set up.

$aggregate = new AggregateModel($mymodel); $aggregate->setGroupBy(['first', 'last'], [ 'salary' => ['expr' => 'sum([])', 'type' => 'atk4_money'], ];

your resulting model will have 3 fields: first, last, salary

but when querying it will use the original model to calculate the query, then add grouping and aggregates.

If you wish you can add more fields, which will be passed through: $aggregate->addField('middle');

If this field exist in the original model it will be added and you'll get exception otherwise. Finally you are permitted to add expressions.

Methods
Methods inherited from Atk4\Data\Model
isEntity(), assertIsModel(), assertIsEntity(), getModel(), __clone(), getModelOnlyProperties(), createEntity(), init(), assertIsInitialized(), add(), _addIntoCollection(), getDataRef(), getDirtyRef(), validate(), fieldFactory(), addFields(), removeField(), hasField(), getField(), setOnlyFields(), isDirty(), getFields(), set(), setNull(), setMulti(), get(), getId(), setId(), getModelCaption(), getTitle(), getTitles(), compare(), _isset(), _unset(), scope(), addCondition(), addCteModel(), setOrder(), setLimit(), issetPersistence(), setPersistence(), assertHasPersistence(), isLoaded(), assertIsLoaded(), unload(), tryLoad(), load(), tryLoadOne(), loadOne(), tryLoadAny(), loadAny(), reload(), duplicate(), saveAndUnload(), withPersistence(), loadBy(), tryLoadBy(), validateEntityScope(), save(), _insert(), insert(), import(), export(), getIterator(), createIteratorBy(), delete(), atomic(), executeCountQuery(), addExpression(), addCalculatedField(), __isset(), __get(), __set(), __unset(),
Methods used from Atk4\Core\CollectionTrait
_removeFromCollection(), _cloneCollection(), _hasInCollection(), _getFromCollection(), _shortenMl()
Methods used from Atk4\Core\ContainerTrait
_uniqueElementName(), _addContainer(), removeElement(), _shorten(), getElement(), hasElement()
Methods used from Atk4\Core\DiContainerTrait
setDefaults(), setMissingProperty(), assertInstanceOf(), _fromSeedPrecheck(), fromSeed(), fromSeedUnsafe()
Methods used from Atk4\Core\DynamicMethodTrait
__call(), buildMethodHookName(), addMethod(), hasMethod(), removeMethod()
Methods used from Atk4\Core\HookTrait
_rebindHookFxToFakeInstance(), _unbindHookFxIfBoundToThis(), _rebindHooksIfCloned(), onHook(), onHookShort(), _makeHookDynamicFx(), onHookDynamic(), onHookDynamicShort(), hookHasCallbacks(), removeHook(), hook(), breakHook()
Methods used from Atk4\Core\InitializerTrait
isInitialized(), invokeInit()
Methods used from Atk4\Data\Model\JoinsTrait
join(), leftJoin(), hasJoin(), getJoin(), getJoins()
Methods used from Atk4\Data\Model\ReferencesTrait
_addReference(), addReference(), hasOne(), hasMany(), containsOne(), containsMany(), hasReference(), getReference(), getReferences(), ref(), refModel(), refLink()
Methods used from Atk4\Data\Model\UserActionsTrait
addUserAction(), hasUserAction(), addUserActionFromModel(), getUserActions(), getUserAction(), removeUserAction(), executeUserAction(), initUserActions()
Methods used from Atk4\Core\ReadableCaptionTrait
readableCaption()
Constants
Constants inherited from Atk4\Data\Model
HOOK_BEFORE_LOAD, HOOK_AFTER_LOAD, HOOK_BEFORE_UNLOAD, HOOK_AFTER_UNLOAD, HOOK_BEFORE_INSERT, HOOK_AFTER_INSERT, HOOK_BEFORE_UPDATE, HOOK_AFTER_UPDATE, HOOK_BEFORE_DELETE, HOOK_AFTER_DELETE, HOOK_BEFORE_SAVE, HOOK_AFTER_SAVE, HOOK_ROLLBACK, HOOK_NORMALIZE, HOOK_VALIDATE, HOOK_ONLY_FIELDS, ID_LOAD_ONE, ID_LOAD_ANY
Properties
Properties inherited from Atk4\Data\Model
$_model, $_entityId, $_modelOnlyProperties, $_defaultSeedAddField, $_defaultSeedAddExpression, $fields, $tableAlias, $_persistence, $persistenceData, $scope, $limit, $order, $cteModels, $data, $dirty, $readOnly, $idField, $titleField, $caption, $onlyFields, $reloadAfterSave, $containedInEntity, $ownerReference, $fieldSeedByType, $id, $elements
Properties used from Atk4\Core\ContainerTrait
$_elementNameCounts
Properties used from Atk4\Core\HookTrait
$hooks, $_hookIndexCounter, $_hookOrigThis
Properties used from Atk4\Core\InitializerTrait
$_initialized
Properties used from Atk4\Data\Model\JoinsTrait
$_defaultSeedJoin
Properties used from Atk4\Data\Model\ReferencesTrait
$_defaultSeedAddReference, $_defaultSeedHasOne, $_defaultSeedHasMany, $_defaultSeedContainsOne, $_defaultSeedContainsMany
Properties used from Atk4\Data\Model\UserActionsTrait
$_defaultSeedUserAction, $userActions