diff --git a/src/bases/BaseRepository.php b/src/bases/BaseRepository.php index 32c1ac290c011e6c452bcf1471a00a96ec589930..40279397922823fe2a6736aa0658290ea237243a 100644 --- a/src/bases/BaseRepository.php +++ b/src/bases/BaseRepository.php @@ -85,12 +85,26 @@ abstract class BaseRepository $query .= " LIMIT $perPage OFFSET $offset"; } - echo $query; $stmt = $this->pdo->prepare($query); $stmt->execute(); - return $stmt->fetchAll(PDO::FETCH_ASSOC); + $results = $stmt->fetchAll(PDO::FETCH_ASSOC); + + + $countQuery = "SELECT COUNT(*) as total FROM $this->tableName"; + if (!empty($where)) { + $countQuery .= " WHERE " . implode(" AND ", $where); + } + + $stmtCount = $this->pdo->prepare($countQuery); + $stmtCount->execute(); + $totalCount = $stmtCount->fetch(PDO::FETCH_ASSOC)['total']; + + return [ + 'count' => $totalCount, + 'result' => $results, + ]; } public function update($id_col, $id, $data, $paramTypes) diff --git a/src/controllers/cat/CatController.php b/src/controllers/cat/CatController.php index 567619907ca256a4500aa88c5e6c4fef63b8aeb5..e30fc734c066532300bcc899806a9ca2141436f1 100644 --- a/src/controllers/cat/CatController.php +++ b/src/controllers/cat/CatController.php @@ -38,11 +38,11 @@ class CatController extends BaseController "pageSize" => $_GET['pageSize'] ?? null, "isDesc" => $_GET['isDesc'] ?? null ]); - $_count = $this->srv->countCats()[0]; - $responseCats = array_map(function ($cat) { return $cat->toResponse(); - }, $cats); + }, $cats["result"]); + + $_count = $cats["count"]; // Include the HTML template require_once PROJECT_ROOT_PATH . "/public/view/cats.php"; diff --git a/src/services/CatSrv.php b/src/services/CatSrv.php index 275829aaae4ff40d04bf960febce9ab7267ed5fa..e29c6d344f44a35ebe816664ad6aded47704503c 100644 --- a/src/services/CatSrv.php +++ b/src/services/CatSrv.php @@ -49,11 +49,11 @@ class CatSrv extends BaseSrv $catsResult = $this->repository->select('*', $where, $order, $config["pageNo"], $config['pageSize'], $config['isDesc']); $cats = []; - foreach ($catsResult as $catResult) { + foreach ($catsResult["result"] as $catResult) { $cat = new CatModel(); $cats[] = $cat->constructFromArray($catResult); } - return $cats; + return ["result" => $cats, "count" => $catsResult["count"]]; } public function createCat($catData)