Querying
To work with the summary entities, we interact with the service
SummaryManager
.
Querying the Summary
You can query the summary entity using the createQuery
method. The method
returns an instance of Query
that you can use to build your query.
use Doctrine\Common\Collections\Criteria;
use Rekalogika\Analytics\Contracts\SummaryManager;
/** @var SummaryManager $summaryManager */
$result = $summaryManager
->createQuery()
->from(OrderSummary::class) // the summary entity class name
->withDimensions('time.year', 'customerCountry') // property names of the dimension
->dice(Criteria::expr()->eq('time.year', 2023))
->getResult();
Query Methods
The methods of the Query
object are modeled after the Doctrine QueryBuilder
methods. The methods are chainable, so you can write the query in a fluent
style.
from
The from
method is used to specify the summary entity class that you want to
query.
withDimensions
and addDimension
These methods are used to specify the dimensions to include in the result. The dimension name is the same as the property name of your summary class.
dice
and andDice
These methods are used to filter the data. They accept a Doctrine Criteria
Expression
object.
The CubeCell
Object
The method Query::getResult()
returns a CubeCell
instance, which is the apex
cell that aggregates all the data in the result.