aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Model.php
diff options
context:
space:
mode:
Diffstat (limited to 'Digitigrade/Model.php')
-rw-r--r--Digitigrade/Model.php13
1 files changed, 11 insertions, 2 deletions
diff --git a/Digitigrade/Model.php b/Digitigrade/Model.php
index 0db27ef..dca1484 100644
--- a/Digitigrade/Model.php
+++ b/Digitigrade/Model.php
@@ -153,12 +153,21 @@ abstract class Model {
return static::fromDbRow($stmt->fetch(\PDO::FETCH_ASSOC));
}
- public static function findAllWhere(string $whereClause, array $parameters): array {
+ public static function findAllWhere(
+ string $whereClause,
+ array $parameters,
+ ?int $limit = null,
+ int $offset = 0
+ ): array {
$classNameParts = explode('\\', static::class);
$className = $classNameParts[count($classNameParts) - 1];
$tableName = self::mangleName($className);
- $stmt = Db::getInstance()->getPdo()->prepare("SELECT * FROM $tableName WHERE $whereClause");
+ $query = "SELECT * FROM $tableName WHERE $whereClause";
+ if ($limit != null) {
+ $query .= " LIMIT $limit OFFSET $offset";
+ }
+ $stmt = Db::getInstance()->getPdo()->prepare($query);
$stmt->execute($parameters);
return array_map(function ($row) {
return static::fromDbRow($row);