From 7284c833a68aab7761520bc967d3de8083e5fbb1 Mon Sep 17 00:00:00 2001 From: Hugo Sales Date: Thu, 15 Apr 2021 22:34:55 +0000 Subject: [PATCH] [DB] Allow DQL queries with table name rather than entity --- src/Core/DB/DB.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Core/DB/DB.php b/src/Core/DB/DB.php index 9934c7abde..32b3df2889 100644 --- a/src/Core/DB/DB.php +++ b/src/Core/DB/DB.php @@ -39,6 +39,7 @@ use Doctrine\Common\Collections\ExpressionBuilder; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\Query; use Doctrine\ORM\Query\ResultSetMappingBuilder; +use Functional as F; abstract class DB { @@ -64,7 +65,8 @@ abstract class DB */ public static function dql(string $query, array $params = []) { - $q = new Query(self::$em); + $query = preg_replace(F\map(self::$table_map, function ($_, $s) { return "/\\b{$s}\\b/"; }), self::$table_map, $query); + $q = new Query(self::$em); $q->setDQL($query); foreach ($params as $k => $v) { $q->setParameter($k, $v);