/** * $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; }