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:----gEGVmxMzeBH8cjcy1UH/aMORMzBxPt81VLLQpcuLQXKCxz385azpuNJJ+Vikc2jgT5jmsVsyQG24TMQ+zvIntNnRyA/dimB43HZ0pQDE6xVWRXzvGdIU+NxT7N59kmXfyw6r4SPJmrEG0h0hVaqjLJUBCugT3+OYaOgNDHEwdpWFEvwfDLK4ycPzoQ6bdf9Dw+19uWiMXWYnQh7aZbcM9hZYbWJ0gF6XyrbiNYF3AnW0bnmIGLfoaNqAs/Lr9O1s0X/MNlBSfXmcq+COprakeixL+QzU0tptSiP0adyfVhRLPjRSnYSvjEFSB6yMSIWEakomZG403IHGOg2Va3dZwU2Wu9azVXshtwH6Ca+GhO1CoMsSYebPz52Uqc3c8oCLWoM67aXWSjvLN2v25p/I2SCVjESlVah5qMT+PzJEroaxrKliADbU8XVdH5zGkQCjrJ9ZT6W/PAWUpGZku6jsMKDKD6o9HB6ovRIudhOaAR44hQ6r87Smc/7WtCixmdJ0xf0aZB3cGwNePQhpFGio2Xjbqyqm4fkxQ8KuMMI1sXh+/OVlFOHeUnA9oiNW54oBVM9BfBzo6eT9L6r3jhbyyiPDaN2PU5/+6SYKS9DcvbJWAd649JCdTBnkxQYUeAdrxALgfoN+bqCxwYW+/2UhX8wZ6QPYpO2cKw5h0DokBzo=----ATTACHMENT:----MzM0NTY3MDY1MjA0ODc4MyAxOTkzOTIyMzU4NTYzODg5IDg3ODI5Njc5MDAxMjI4MTU=