aggiunta di un metodo alla classe child (parte 141)
| | |
| | | |
| | | echo $this->viewer->render("shared/header.php"); |
| | | echo $this->viewer->render("Products/index.php", [ |
| | | "products"=> $products |
| | | "products"=> $products, |
| | | "total" => $this->model->getTotal() |
| | | ]); |
| | | } |
| | | |
| | |
| | | $this->addError("name","Name is required"); |
| | | } |
| | | } |
| | | |
| | | public function getTotal() : int { |
| | | $sql = "SELECT COUNT(*) AS total FROM product"; |
| | | $conn = $this->database->getConnection(); |
| | | $stmt = $conn->query($sql); |
| | | $row = $stmt->fetch(PDO::FETCH_ASSOC); |
| | | |
| | | return (int) $row["total"]; |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | |
| | | abstract protected function validate (array $data): void; |
| | | |
| | | public function __construct(private Database $database) { |
| | | public function __construct(protected Database $database) { |
| | | } |
| | | |
| | | public function update(string $id, array $data): bool { |
| | |
| | | |
| | | <a href="/products/new">New Product</a> |
| | | |
| | | <p>Total: <?= $total ?></p> |
| | | |
| | | <?php foreach ($products as $product): ?> |
| | | <h2> |
| | | <a href="/products/<?= $product["id"] ?>/show"> |