sql >> Base de Datos >  >> RDS >> Mysql

Error general:no se pudo llamar al constructor de clase'

Como se menciona en la documentación:

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.

el mismo argumento está disponible para setFetchMode

public bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )

Implementaría esto en consecuencia:

Primero agregue una propiedad $ctorArgs a \Core\Model con un valor predeterminado de null .Seguido por el reemplazo del actual setFetchMode llamadas

if (!is_array($this->ctorArgs)) throw new \Excpeption("\"ctorArgs\" must be of type array");
$stm->setFetchMode(PDO::FETCH_CLASS, get_called_class(), $this->ctorArgs);

Y finalmente agregue una propiedad $ctorArgs a \App\Models\Admin\Photo con un valor predeterminado de array("picture") .

Esto le dirá al código que su constructor está esperando el parámetro $imagen .

Pensaría en usar una constante en lugar de una propiedad, pero eso depende de cómo decidas implementar esto.