diff --git a/DataStorage/Database/DataMapperAbstract.php b/DataStorage/Database/DataMapperAbstract.php index 9b0b979b3..8d2ebde6d 100644 --- a/DataStorage/Database/DataMapperAbstract.php +++ b/DataStorage/Database/DataMapperAbstract.php @@ -20,6 +20,7 @@ use phpOMS\DataStorage\Database\Query\Builder; use phpOMS\DataStorage\Database\Query\QueryType; use phpOMS\DataStorage\DataMapperInterface; use phpOMS\Utils\ArrayUtils; +use phpOMS\DataStorage\Database\Query\Where; /** * Datamapper for databases. @@ -394,18 +395,24 @@ class DataMapperAbstract implements DataMapperInterface { $query ??= static::getQuery(null, [], RelationType::ALL, $searchDepth); + $where1 = new Where(self::$db); + $where2 = new Where(self::$db); + foreach (self::$conditionals as $condKey => $condValue) { if (($column = self::getColumnByMember($condKey)) !== null) { - $query->andWhere(static::$table . '_' . $searchDepth . '.' . $column, '=', $condValue); + $where1->andWhere(static::$table . '_' . $searchDepth . '.' . $column, '=', $condValue); } } foreach (static::$columns as $col) { if (isset($col['autocomplete']) && $col['autocomplete']) { - $query->where(static::$table . '_' . $searchDepth . '.' . $col['name'], 'LIKE', '%' . $search . '%', 'OR'); + $where2->where(static::$table . '_' . $searchDepth . '.' . $col['name'], 'LIKE', '%' . $search . '%', 'OR'); } } + $query->andWhere($where1); + $query->andWhere($where2); + if ($searchDepth > 2) { foreach (static::$ownsOne as $one) { $one['mapper']::findQuery($search, $searchDepth - 1, $query); diff --git a/DataStorage/Database/Query/Builder.php b/DataStorage/Database/Query/Builder.php index 6ea2ba83b..d63bdf30b 100644 --- a/DataStorage/Database/Query/Builder.php +++ b/DataStorage/Database/Query/Builder.php @@ -553,7 +553,7 @@ class Builder extends BuilderAbstract } $i = 0; - foreach ($columns as $key => $column) { + foreach ($columns as $column) { if (isset($operator[$i]) && !\in_array(\strtolower($operator[$i]), self::OPERATORS)) { throw new \InvalidArgumentException('Unknown operator.'); } diff --git a/DataStorage/Database/Query/Grammar/Grammar.php b/DataStorage/Database/Query/Grammar/Grammar.php index a02d5839c..2aa28c740 100644 --- a/DataStorage/Database/Query/Grammar/Grammar.php +++ b/DataStorage/Database/Query/Grammar/Grammar.php @@ -216,8 +216,8 @@ class Grammar extends GrammarAbstract { $expression = ''; - foreach ($wheres as $key => $where) { - foreach ($where as $key2 => $element) { + foreach ($wheres as $where) { + foreach ($where as $element) { $expression .= $this->compileWhereElement($element, $query, $first); $first = false; } @@ -440,7 +440,7 @@ class Grammar extends GrammarAbstract { $expression = ''; - foreach ($ons as $key => $on) { + foreach ($ons as $on) { $expression .= $this->compileOnElement($on, $query, $first); $first = false; }