Comme mentionné dans la documentation :
public array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
ctor_args
Arguments of custom class constructor when the fetch_style parameter is PDO::FETCH_CLASS.
le même argument est disponible pour setFetchMode
public bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
J'implémenterais ceci en conséquence :
Ajoutez d'abord une propriété $ctorArgs vers \Core\Model
avec une valeur par défaut de null
.Suivi en remplaçant le setFetchMode actuel appels
if (!is_array($this->ctorArgs)) throw new \Excpeption("\"ctorArgs\" must be of type array");
$stm->setFetchMode(PDO::FETCH_CLASS, get_called_class(), $this->ctorArgs);
Et enfin ajouter une propriété $ctorArgs vers \App\Models\Admin\Photo
avec une valeur par défaut de array("picture")
.
Cela indiquera au code que votre constructeur attend le paramètre $picture .
Je penserais à utiliser une constante au lieu d'une propriété, mais cela dépend de la façon dont vous décidez de l'implémenter.