Skip to content

Commit 866c1f7

Browse files
committed
Management of database connection prefix in subqueries.
1 parent c02bbad commit 866c1f7

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

src/Eloquent/Concerns/QueriesRelationships.php

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,22 @@ protected function addHasWhere(Builder $hasQuery, Relation $relation, $operator,
2525
// If connection implements CanCrossDatabaseShazaamInterface we must attach database
2626
// connection name in from to be used by grammar when query compiled
2727
if ($this->getConnection() instanceof CanCrossDatabaseShazaamInterface) {
28-
$subqueryConnection = $hasQuery->getConnection()->getDatabaseName();
29-
$queryConnection = $this->getConnection()->getDatabaseName();
30-
if ($queryConnection != $subqueryConnection) {
31-
$queryFrom = $hasQuery->getQuery()->from.'<-->'.$subqueryConnection;
28+
$queryConnection = $this->getConnection();
29+
$hasQueryConnection = $hasQuery->getConnection();
30+
31+
$queryConnectionName = $queryConnection->getDatabaseName();
32+
$hasQueryConnectionName = $hasQueryConnection->getDatabaseName();
33+
if ($queryConnectionName != $hasQueryConnectionName) {
34+
35+
$queryFrom = '';
36+
$hasQueryConnectionPrefix = $hasQueryConnection->getTablePrefix();
37+
$hasQueryQueryFrom = $hasQuery->getQuery()->from;
38+
39+
if(isset($hasQueryConnectionPrefix)){
40+
$queryFrom = $hasQueryConnectionPrefix . $hasQueryQueryFrom . ' as ';
41+
}
42+
43+
$queryFrom .= $hasQueryQueryFrom . '<-->' . $subqueryConnection;
3244
$hasQuery->from($queryFrom);
3345
}
3446
}

0 commit comments

Comments
 (0)