aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Model.php
diff options
context:
space:
mode:
authorwinter2025-01-14 18:13:57 +0000
committerwinter2025-01-14 18:13:57 +0000
commit25b748f04911262826d0a0bc9609e03ee47c3232 (patch)
tree35dc82bd0cb1798913f726fb6bb74be97e5b83ba /Digitigrade/Model.php
parent2082bfe9a378a90b33d4ab5c05dbb19a3457bef6 (diff)
add interaction counters
Diffstat (limited to 'Digitigrade/Model.php')
-rw-r--r--Digitigrade/Model.php16
1 files changed, 16 insertions, 0 deletions
diff --git a/Digitigrade/Model.php b/Digitigrade/Model.php
index 4a206a6..be664cb 100644
--- a/Digitigrade/Model.php
+++ b/Digitigrade/Model.php
@@ -183,6 +183,22 @@ abstract class Model {
return static::findAllWhere('1 = 1', []);
}
+ public static function countWhere(string $whereClause, array $parameters): int {
+ $classNameParts = explode('\\', static::class);
+ $className = $classNameParts[count($classNameParts) - 1];
+ $tableName = self::mangleName($className);
+
+ $query = "SELECT count(*) FROM $tableName WHERE $whereClause";
+ $stmt = Db::getInstance()->getPdo()->prepare($query);
+ $stmt->execute($parameters);
+ return $stmt->fetchColumn(0);
+ }
+
+ public static function count(): int {
+ // FIXME
+ return static::countWhere('1 = 1', []);
+ }
+
public static function find(int $id): ?static {
return static::findWhere('id = ?', [$id]);
}