/**
* $query 에 join 된 쿼리를 리턴
*
* @param DynamicQuery $query query builder
* @return Builder
*/
public function joinRevision(DynamicQuery $query)
{
$config = $this->config;
$tableName = $query->from;
$table = $this->handler->getConfigHandler()->getRevisionTableName($config);
if ($query->hasDynamicTable($table)) {
return $query;
}
$query->leftJoin($table, function (JoinClause $join) use($tableName, $table, $config) {
$join->on(sprintf('%s.%s', $tableName, $config->get('joinColumnName')), '=', sprintf('%s.dynamicFieldTargetId', $table))->on(sprintf('%s.revisionId', $tableName), '=', sprintf('%s.revisionId', $table));
});
$query->setDynamicTable($table);
return $query;
}