diff options
Diffstat (limited to 'Digitigrade/Model.php')
| -rw-r--r-- | Digitigrade/Model.php | 13 |
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); |
