Добавление и вывод из базы с шаблоном MVC

121
08 февраля 2020, 13:00

Делаю тестовое задание - одностраничный сайт, где в первом блоке идет вывод информации, а во втором есть возможность ее добавления.

index.php реализована одной строчкой - include контроллер, который создает подключение с базой данных, берет от туда данный и подключает страничку view.php, где отрисовывается сама страница и через цикл выводятся карточки с данными.

Сам класс базы данных сделан с конструктором PDO и двумя методами: выборка из базы, добавление в базу.

Как правильно организовать второй блок, где осуществляется добавление товара? Пытался сделать все в единственном контроллере, который отрисовывает страницу, но тогда появляется бесконечный цикл рендеренга view.php. Создать экзмепляр класса бд в файле action.php, чтобы управлять данными из формы там тоже не получается, выдает ошибку, что отправленные значения null, хотя данные из формы читаются.

Может быть ошибка в самом методе добавления?

//////////// MODEL /////////
class Database
{
    public $pdo;

    function __construct (){
        $host = '127.0.0.1';
        $db   = 'Hero';
        $user = 'root';
        $pass = '';
        $charset = 'utf8';
        $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
        $opt = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
       $this->pdo = new PDO($dsn, $user, $pass, $opt);
    }

    public function getProfiles(){
       return $this->pdo->query('SELECT * FROM `heros`');
    }
    public function addProfile($photo, $name, $role, $date){

        $sql = "INSERT INTO heros (photo, name, role, date) VALUES (?,?,?,?)";
        $stmt= $pdo->prepare($sql);
        $stmt->execute([$photo, $name, $role, $currentDate]);
    }
}

Все решил! Как обычно забыл указать $this перед дескриптором подключения и название переменной не совпадало с парметром

READ ALSO
абстрактный класс с общим методом

абстрактный класс с общим методом

Каждый наследник реализует метод getEntityType, и $hashBase у всех будет свойНо надо сделать так, чтобы при каждом вызове метода compareHash для каждого наследника...

96
Блокировка сессий в php

Блокировка сессий в php

Всем приветКак мы знаем, php по умолчанию хранит сессию в файлах, и осуществляет блокировку на этот файл сессии, при ее открытии

119
strpos код не срабатывает PHP

strpos код не срабатывает PHP

Есть такой код для фильтрации URLНо при каждом вводе данных срабатывает последный вариант

108
Как из исходного имени файла выводить только название без расширения?

Как из исходного имени файла выводить только название без расширения?

Название моего файла indexphp, мне надо сделать index

107