Décrivez ici votre problème ou ce que vous cherchez à faire.

<?php
namespace App\Table;

use App\Model\User;
use App\Table\Exception\NotFoundException;
use PDO;

class UserTable extends Table {

    protected $table = 'user';
    protected $class = User::class;

    public function findByUsername(string $username)
    {
        $query = $this->pdo->prepare("SELECT * FROM {$this->table} where username = :username");
        $query->execute(['username' => $username]);
        $query->setFetchMode(PDO::FETCH_CLASS, $this->class);
        $result = $query->fetch();
        if ($result === false) {
            throw new NotFoundException($this->table, $username);
        }
        return $result;
    }

}

Ce que je veux

que la fonction, fonctionne

Ce que j'obtiens

une erreur :
Creation of dynamic property App\Model\User::$id is deprecated

6 réponses


bonjour.
depuis la version 8.2 de php si je ne trompe pas.
on ne peux plus créer de d'objet dynamiquement.
pour éviter cette erreur, tu peux faire un "extends stdclass" sur la 1ère class.
c'est sur la classe qui n'a pas d'héritage.

Bonjour,
ma classe "UserTable" extend de ma classe "Table"
dois-je mettre "extends stdclass" sur ma classe "Table" ???
car quand je la met sur ma classe "Table" il me fait l'erreur "Undefined type 'App\Table\stdclass'"

stdClass
un peu de

Un peu de quoi ????

Merci beaucoup !