Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro geral:não foi possível chamar o construtor de classe'


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.