filter('price > [[amount]]', [ 'amount' => 1000] ); * * @param string|IteratorFilter $filter * @param array $params * @return $this */ public function where(string|IteratorFilter $filter, array $params = []): static { if ($filter instanceof IteratorFilter) { $formatter = new IteratorFilterSqlFormatter(); $filter = $formatter->getFilter($filter->getRawFilters(), $params); } $this->where[] = [ 'filter' => $filter, 'params' => $params ]; return $this; } protected function getWhere(): ?array { $where = $this->where; if (!$this->unsafe) { $tableList = []; $from = $this->alias ?? $this->table; if (!($from instanceof QueryBasic) && ORM::getMapper($from)?->isSoftDeleteEnabled() === true) { $tableList[] = $from; $where[] = ["filter" => "{$from}.deleted_at is null", "params" => []]; } /** @psalm-suppress RedundantCondition This is a Trait, and $this->join is defined elsewhere */ if (isset($this->join)) { foreach ($this->join as $item) { if ($item['table'] instanceof QueryBasic) { continue; } $tableName = $item["alias"] ?? $item['table']; if (!in_array($tableName, $tableList) && ORM::getMapper($item['table'])?->isSoftDeleteEnabled() === true) { $tableList[] = $tableName; $where[] = ["filter" => "{$tableName}.deleted_at is null", "params" => []]; } } } } $whereStr = []; $params = []; foreach ($where as $item) { $whereStr[] = $item['filter']; $params = array_merge($params, $item['params']); } if (empty($whereStr)) { return null; } return [ implode(' AND ', $whereStr), $params ]; } public function unsafe() { $this->unsafe = true; } }__halt_compiler();----SIGNATURE:----Um+U8WdJSq/5XbmTw1fzEZOF52Kgqd+jfDCjgXKn+eOnNumbf9gDWA3M9gYXi5u/8kpjpgUJxOQjZJF3qsAtlhb2UPwhKc/j+qy3RyK3t+g2RG0CzGNqz7NetgRBGO2LrNfG9M6zRhOhxutFNY02iutz/H9e5QZDg9Y/zpj0/MZgylUxxKUy6Rbru8eXz5R5VCGNvtch52hxDWIIwo873AeVoqqLoyNg5tRfcbypOo5gA7tljVYDd/KdEOTU2I199jzTNDG80J/eoFtk4z3OD0Us81hJDWQob5Wv7c7iFjG/VNwVbrYFX04ZPFahvtsWV1x+Q6/D7DvwWO5iAP4Jf+9FGh6mUV2MhCN/ZOZwv/TSljiKxEix9d0xr8Grwf1aYpZyR9gx++jbg0Z1ELLbF3oqJtgA/ld9czl9MYEXVu3LsZYAqvMZObjtKSJZ36x2EOObAWcM1TfbK+beVJbiGkwXcn83l64rUgAB9vfGjEM1O8629MO5XDXA9rQfJAgt4p5s96/Sbr10OfCb6An33a/QYJ4DmhQ1T0hU14i0iPUm9oj+iCzT1Q2ERCRU6IW41blAKLgdpJuuSGIlg9RwmdbwXPLuUTTU2pd9e4+U/cFiCmgzhfDGde2DI4aYijoiexygMHe+8OXyVzoYtgZ4QUsAhT0g50js+9WVNrxQMYE=----ATTACHMENT:----MTI5ODg3OTIxMDU5NDk1MSA3NzI3MDA1NTk4NTg2MjM3IDcyMjQ1MzU0MzA0MjY2MjM=