Я пытаюсь использовать:
$stmt>setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,static::MODEL_CLASS);
$customer = $stmt->fetch();`
Чтобы связать данные, возвращающиеся в конструктор, который связан со static :: MODEL_CLASS. Даже если я просто наберу фактическое имя класса «Клиент», я получу ошибку здесь. Прежде чем код получит возможность получить его, он переходит в ошибку. Без setFetchMode я получаю данные обратно. База данных и модель имеют одинаковые свойства в одинаковом порядке. Кто-нибудь знает, что происходит ???
Ошибка:
(!) Неустранимая ошибка: Uncaught ArgumentCountError: слишком мало аргументов для
функция Klant :: __ construct (), 0 пройдено и ровно 8 ожидается в
D: \ Documents \ Stack \ Dropbox \ Dropbox \ Deltion \ работает \ Hoofdstuk
6 \ datamapperdesignpattern.php в строке 14
class Klant {
public $ID;
public $voornaam;
public $achternaam;
public $adres;
public $postcode;
public $woonplaats;
public $email;
public $password;
public function __construct($ID, $voornaam, $achternaam, $adres, $postcode, $woonplaats, $email, $password) {
$this->ID = $ID;
$this->voornaam = $voornaam;
$this->achternaam = $achternaam;
$this->adres = $adres;
$this->postcode = $postcode;
$this->woonplaats = $woonplaats;
$this->email = $email;
$this->password = $password;
}
function read($ID)
{
$stmt = $this->pdo->prepare("SELECT * FROM customer WHERE ID = ?");
try {
$stmt->bindParam(1, $ID);
$stmt->execute();
}
catch(PDOException $e) {
echo $e;
}
$stmt->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,static::MODEL_CLASS);
$customer = $stmt->fetch();
return $customer;
}
^ Полный код для справки. Конструктор нормальный public function __construct()
ВАЖНО? НОТА:
Этот тот же самый точный код и та же самая точная база данных работают с кем-то еще. У меня свежая установка Xampp. И версия PHP 7.2.11.