corso https://vola.udemy.com/course/php-mvc-from-scratch/learn/lecture/40931984#overview
filippo.bertilotti
2024-05-24 e66fc13048b8a04c748c34711629f4a3bd50c71f
aggiunta di un metodo alla classe child (parte 141)
4 files modified
18 ■■■■ changed files
src/App/Controllers/products.php 3 ●●●● patch | view | raw | blame | history
src/App/Models/product.php 11 ●●●●● patch | view | raw | blame | history
src/Framework/Model.php 2 ●●● patch | view | raw | blame | history
views/Products/index.php 2 ●●●●● patch | view | raw | blame | history
src/App/Controllers/products.php
@@ -11,7 +11,8 @@
        echo $this->viewer->render("shared/header.php");
        echo $this->viewer->render("Products/index.php", [
            "products"=> $products
            "products"=> $products,
            "total" => $this->model->getTotal()
        ]);
    }
src/App/Models/product.php
@@ -14,4 +14,15 @@
                $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"];
        }
    }
src/Framework/Model.php
@@ -10,7 +10,7 @@
        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 {
views/Products/index.php
@@ -3,6 +3,8 @@
    <a href="/products/new">New Product</a>
    <p>Total: <?= $total ?></p>
    <?php foreach ($products as $product): ?>
        <h2>
            <a href="/products/<?= $product["id"] ?>/show">