$val) { $value[$key] = is_numeric($val) ? $val : "'$val'"; } $value = "[" . implode(",", $value) . "]"; } else { $value = is_numeric($value) ? $value : "'$value'"; } switch ($relation) { case Relation::EQUAL: $return = "%$name == $value"; break; case Relation::GREATER_THAN: $return = "%$name > $value"; break; case Relation::LESS_THAN: $return = "%$name < $value"; break; case Relation::GREATER_OR_EQUAL_THAN: $return = "%$name >= $value"; break; case Relation::LESS_OR_EQUAL_THAN: $return = "%$name <= $value"; break; case Relation::NOT_EQUAL: $return = "%$name != $value"; break; case Relation::STARTS_WITH: $return = " str_starts_with(%$name, $value) "; break; case Relation::IN: $return = " in_array(%$name, $value) "; break; case Relation::NOT_IN: $return = " !in_array(%$name, $value) "; break; default: // Relation::CONTAINS: $return = " str_contains(%$name, $value) "; break; } return $return; } /** * Get formatted field * * @param array $filters * @param string|null $tableName * @param array $params * @param string $returnFields * @return string */ public function format( array $filters, ?string $tableName = null, array &$params = [], string $returnFields = '*', ): string { return $this->getFilter($filters, $params); } /** * Get Filter * * @param array $filters * @param array $param * @return string */ public function getFilter(array $filters, array &$param): string { $filter = ""; $param = array(); $first = true; foreach ($filters as $value) { if (!$first || $value[0] == "(") { $filter .= $value[0]; } $first = false; if ($value[0] == ")") { continue; } $filter .= $this->getRelation($value[1], $value[2], $value[3], $param); } return $filter; } }__halt_compiler();----SIGNATURE:----tmlQQTJGELGv45BTC4B5DVdkzh7HUBjamf6GrXq1nUZS2fwyauVNtZQBbi8SdQ6xCvItpusMxUIi1IYRXi3Ql4Li+qWVwFIGHulxQzeOkenJsGqNdZceW8jbDvKOE7uw+EyFJ8Fz9kjsIB87/kZmH0v0suUIGDC6Sp0JVMZKhUPt2/6DkmN0JpTb94FsE+eNsDlkH4Kzi7gvExoEQbPTu3X553GbkI/2yQR9ygF056S41oF4CFMBpa1cNnc3yinuWU385ccxOoLvhN/cdYewOiFFjiaFAnrD+7os8DiQ7O0OgIBxtycXReH6zsgJY2gSc272HFQFFKaI/Us8aObKmOFMp6p5hNKpJ6W/Tbaon9Ly+pRwQfGouR9oEQYwRpbRT0KE1U3BTgoZXWQanoRT7VlstqQ6Dv0A4rag0rmQWUmXyXE3OWlBQJFpbdEdMSh38KolH7QRyf02AxXwr1iThNPw/BGwgqrHvxK8OdXFmJ+kKFkpdeB6Q9QY7aB8UgETECBcdOh7jzj8IDHH4IKB+YhweHsrHsGID/BCVefImpS6vcf9wgko5w7mJuAfwbeC2HEyD1FqhzPZdsa684spGRalaYBYBvIUtp1ZgE1e0r3sQaF7CcHHQjUQ80+hXvV49GUuVu//w265c26f2+6YDkjXnWk2qjluO92Ulv1/C+M=----ATTACHMENT:----MjU5NDkwMzk3MTU2MTY1NiA1MDk0MjE5NjAzNTI4NzIwIDQ0OTcwMDQ0ODI1NzQ5