diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f2d4c69..4939dd2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,6 +59,7 @@ - Enh #393: Refactor `DMLQueryBuilder::upsert()` method (@Tigrov) - Chg #398: Update expression namespaces according to changes in `yiisoft/db` package (@Tigrov) - Enh #392: Update `DMLQueryBuilder::update()` method to adapt changes in `yiisoft/db` (@rustamwin) +- Enh #406: Adapt to `DQLQueryBuilderInterface::buildWithQueries()` signature changes in `yiisoft/db` package (@vjik) ## 1.2.0 March 21, 2024 diff --git a/src/DQLQueryBuilder.php b/src/DQLQueryBuilder.php index ba9d702e..32443841 100644 --- a/src/DQLQueryBuilder.php +++ b/src/DQLQueryBuilder.php @@ -22,6 +22,7 @@ use Yiisoft\Db\Mssql\Builder\LongestBuilder; use Yiisoft\Db\Mssql\Builder\ShortestBuilder; use Yiisoft\Db\Query\Query; +use Yiisoft\Db\Query\WithQuery; use Yiisoft\Db\QueryBuilder\AbstractDQLQueryBuilder; use Yiisoft\Db\QueryBuilder\Condition\In; use Yiisoft\Db\QueryBuilder\Condition\Like; @@ -135,13 +136,17 @@ protected function extractAlias(string $table): array|bool return parent::extractAlias($table); } - public function buildWithQueries(array $withs, array &$params): string + public function buildWithQueries(array $withQueries, array &$params): string { - /** @psalm-var array{query:string|Query, alias:ExpressionInterface|string, recursive:bool}[] $withs */ - foreach ($withs as &$with) { - $with['recursive'] = false; - } - - return parent::buildWithQueries($withs, $params); + $withQueries = array_map( + static fn(WithQuery $withQuery) => new WithQuery( + $withQuery->query, + $withQuery->alias, + false + ), + $withQueries, + ); + + return parent::buildWithQueries($withQueries, $params); } }