Bolt\Storage\Field\Type\RepeaterType::load PHP Method

load() public method

For repeating fields, the load method adds extra joins and selects to the query that fetches the related records from the field and field value tables in the same query as the content fetch.
public load ( Doctrine\DBAL\Query\QueryBuilder $query, Bolt\Storage\Mapping\ClassMetadata $metadata ) : void
$query Doctrine\DBAL\Query\QueryBuilder
$metadata Bolt\Storage\Mapping\ClassMetadata
return void
    public function load(QueryBuilder $query, ClassMetadata $metadata)
    {
        $field = $this->mapping['fieldname'];
        $boltname = $metadata->getBoltName();
        $from = $query->getQueryPart('from');
        if (isset($from[0]['alias'])) {
            $alias = $from[0]['alias'];
        } else {
            $alias = $from[0]['table'];
        }
        $dummy = 'f_' . $field;
        $query->addSelect($this->getPlatformGroupConcat($field, $query))->leftJoin($alias, $this->mapping['tables']['field_value'], $dummy, $dummy . ".content_id = {$alias}.id AND " . $dummy . ".contenttype='{$boltname}' AND " . $dummy . ".name = '{$field}'");
    }