Создание php MVC приложения. Главная страница кабинета

Главная » Видеоуроки » PHP+MySQL » Создание php MVC приложения. Главная страница кабинета
Сегодня нашей задачей будет создание главной страницы кабинета. Данная страница предполагает довольно приличную по объему верстку, поэтому я решил использовать готовый шаблон для того, чтобы как можно быстрее перейти к решению других более интересных и актуальных для вас задач. Шаблон вы можете скачать по ссылке.
После создания шаблона страницы нам нужно создать контроллер и модель главной страницы кабинета. В контроллере мы как всегда объявляем приватное свойство — шаблон для отрисовки, а также метод по умолчанию (index), который будет отрисовывать страницу с некоторыми данными, которые хранятся в массиве pageData. Для начала мы выведем на страницу небольшую общую статистику — количество заказов, товаров и пользователей.
Для этого в модели CabinetModel мы создадим три соответствующих метода — getOrdersCount(), getProductsCount() и getUsersCount(). Код методов идентичен за исключением названия таблицы, из которой мы получаем данные. Методы возвращают нам количество строк, а не детальные данные. Поэтому в запросе мы будем использовать функцию COUNT(). А результат мы будем получать при помощи метода fetchColumn().

Код урока (CabinetController.php)

<?php

class CabinetController extends Controller {

    private $pageTpl = "/views/cabinet.tpl.php";

    public function __construct() {
        $this->model = new CabinetModel();
        $this->view = new View();
    }

    public function index() {
        $this->pageData['title'] = "Кабинет";

        $ordersCount = $this->model->getOrdersCount();
        $this->pageData['ordersCount'] = $ordersCount;

        $productsCount = $this->model->getProductsCount();
        $this->pageData['productsCount'] = $productsCount;

        $usersCount = $this->model->getUsersCount();
        $this->pageData['usersCount'] = $usersCount;

        $this->view->render($this->pageTpl, $this->pageData);
    }

}

 ?>

Код урока (CabinetModel.php)

<?php

class CabinetModel extends Model {

    public function getOrdersCount() {
        $sql = "SELECT COUNT(*) FROM orders";
        $stmt = $this->db->prepare($sql);
        $stmt->execute();
        $res = $stmt->fetchColumn();
        return $res;
    }

    public function getProductsCount() {
        $sql = "SELECT COUNT(*) FROM products";
        $stmt = $this->db->prepare($sql);
        $stmt->execute();
        $res = $stmt->fetchColumn();
        return $res;
    }

    public function getUsersCount() {
        $sql = "SELECT COUNT(*) FROM users";
        $stmt = $this->db->prepare($sql);
        $stmt->execute();
        $res = $stmt->fetchColumn();
        return $res;
    }


}

 ?>

0 Комментариев

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.

Pin It on Pinterest

Share This