Version: current

# Class Aggregate_Relationship

A subclass of Aggregate that calculates aggregates for the result of a has_many query.

  Object
  ViewableData implements IteratorAggregate
  Aggregate
  Aggregate_Relationship

Package: sapphire\core
Author: hfried
Located at sapphire/core/model/Aggregate.php

## Methods summary

`public` | # `__construct( `DataObject` $object, string $relationship, string $filter = '' )` Constructor Constructor #### Parameters $object DataObject $object The object that has_many somethings that we're calculating the aggregate for $relationship string $relationship The name of the relationship $filter string $filter (optional) An SQL filter to apply to the relationship rows before calculating the aggregate #### Overrides `Aggregate::__construct`
`protected `SQLQuery`` | # `query( string $attr )` Build the SQLQuery to calculate the aggregate This is a seperate function so that subtypes of Aggregate can change just this bit Build the SQLQuery to calculate the aggregate This is a seperate function so that subtypes of Aggregate can change just this bit #### Parameters $attr string $attr - the SQL field statement for selection (i.e. "MAX(LastUpdated)") #### Returns ``SQLQuery`` SQLQuery #### Overrides `Aggregate::query`

### Methods inherited from Aggregate

`XML_val()`, `__call()`, `cache()`, `flushCache()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentMember()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `defineMethods()`, `escapeTypeForField()`, `getField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `hasField()`, `hasValue()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`, `setField()`

### Methods inherited from Object

`__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `create()`, `createMethod()`, `create_from_string()`, `exists()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `hasMethod()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

### Properties inherited from Aggregate

`$cache`

### Properties inherited from ViewableData

`$casting`, `$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -