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

load() public method

It does this via an additional ->addSelect() and ->leftJoin() call on the QueryBuilder which includes then includes the taxonomies 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'];
        $target = $this->mapping['target'];
        $boltname = $metadata->getBoltName();
        if ($this->mapping['data']['has_sortorder']) {
            $order = "{$field}.sortorder";
            $query->addSelect($this->getPlatformGroupConcat("{$field}.sortorder", $order, '_' . $field . '_sortorder', $query));
        } else {
            $order = "{$field}.id";
        }
        $from = $query->getQueryPart('from');
        if (isset($from[0]['alias'])) {
            $alias = $from[0]['alias'];
        } else {
            $alias = $from[0]['table'];
        }
        $query->addSelect($this->getPlatformGroupConcat("{$field}.id", $order, '_' . $field . '_id', $query))->addSelect($this->getPlatformGroupConcat("{$field}.slug", $order, '_' . $field . '_slug', $query))->addSelect($this->getPlatformGroupConcat("{$field}.name", $order, '_' . $field . '_name', $query))->addSelect($this->getPlatformGroupConcat("{$field}.taxonomytype", $order, '_' . $field . '_taxonomytype', $query))->leftJoin($alias, $target, $field, "{$alias}.id = {$field}.content_id AND {$field}.contenttype='{$boltname}' AND {$field}.taxonomytype='{$field}'")->addGroupBy("{$alias}.id");
    }