public function join(DynamicQuery $query, ConfigEntity $config = null)
{
if ($config === null) {
$config = $this->config;
}
if ($config->get('use') === false) {
return $query;
}
$baseTable = $query->from;
$createTableName = $this->handler->getConfigHandler()->getTableName($config);
if ($query->hasDynamicTable($createTableName) === true) {
return $query;
}
$query->leftJoin($createTableName, function (JoinClause $join) use($createTableName, $config, $baseTable) {
$join->on(sprintf('%s.%s', $baseTable, $config->get('joinColumnName')), '=', sprintf('%s.dynamicFieldTargetId', $createTableName));
});
$query->setDynamicTable($createTableName);
return $query;
}