Conforme mencionado na documentação:
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.
o mesmo argumento está disponível para setFetchMode
public bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
Eu implementaria isso de acordo:
Primeiro adicione uma propriedade $ctorArgs para
\Core\Model
com um valor padrão de null
.Seguido pela substituição do setFetchMode atual chamadas if (!is_array($this->ctorArgs)) throw new \Excpeption("\"ctorArgs\" must be of type array");
$stm->setFetchMode(PDO::FETCH_CLASS, get_called_class(), $this->ctorArgs);
E finalmente adicione uma propriedade $ctorArgs para
\App\Models\Admin\Photo
com um valor padrão de array("picture")
. Isso informará ao código que seu construtor está esperando o parâmetro $picture .
Eu pensaria em usar uma constante em vez de uma propriedade, mas isso depende de como você decide implementar isso.