public function getQueryTags(SelectQuery $query, $className) { $columns = $this->getLinkObjectColumnListByClass($className); $tagList = []; if ($query->getTablesCount() > 1 || !$this->isLazy($className)) { foreach ($query->getJoinedTables() as $table) { /* @var $table SQLRealTableName */ $tagList[] = $table->getRealTable(); } } else { foreach ($query->getWhere() as $whereObject) { if ($whereObject instanceof BinaryExpression) { if ($tag = $this->getTagByBinaryExpression($whereObject, $query, $className, $columns)) { $tagList[] = $tag; } } if ($whereObject instanceof LogicalChain) { foreach ($whereObject->getChain() as $logic) { if ($logic instanceof BinaryExpression) { if ($tag = $this->getTagByBinaryExpression($logic, $query, $className, $columns)) { $tagList[] = $tag; } } } } } if (empty($tagList)) { $tagList = $this->getDefaultTags($className); } } return $tagList; }