Zoals vermeld in de documentatie:
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.
hetzelfde argument is beschikbaar voor setFetchMode
public bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
Ik zou dit dienovereenkomstig implementeren:
Voeg eerst een eigenschap toe $ctorArgs naar \Core\Model
met een standaardwaarde van null
.Gevolgd door het vervangen van de huidige setFetchMode oproepen
if (!is_array($this->ctorArgs)) throw new \Excpeption("\"ctorArgs\" must be of type array");
$stm->setFetchMode(PDO::FETCH_CLASS, get_called_class(), $this->ctorArgs);
En voeg tot slot een eigenschap toe $ctorArgs naar \App\Models\Admin\Photo
met een standaardwaarde van array("picture")
.
Dit vertelt de code dat uw constructor de parameter $picture . verwacht .
Ik zou overwegen om een constante te gebruiken in plaats van een eigenschap, maar dat hangt af van hoe je besluit dit te implementeren.