sql >> Database teknologi >  >> RDS >> Mysql

Generel fejl:kunne ikke kalde klassekonstruktør'

Som nævnt i dokumentationen:

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.

det samme argument er tilgængeligt for setFetchMode

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

Jeg ville implementere dette i overensstemmelse hermed:

Tilføj først en egenskab $ctorArgs til \Core\Model med standardværdien null . Efterfulgt af at erstatte den nuværende setFetchMode opkald

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

Og tilføj endelig en egenskab $ctorArgs til \App\Models\Admin\Photo med standardværdien array("picture") .

Dette vil fortælle koden, at din konstruktør forventer parameteren $picture .

Jeg ville overveje at bruge en konstant i stedet for en ejendom, men det afhænger af, hvordan du beslutter dig for at implementere dette.




  1. hvordan opretter jeg en unik php-side for hver række i en mysql-database

  2. Hvordan man bruger returværdier for en opgave i en anden opgave for en anden vært i ansible

  3. MySQL specificer vilkårlig rækkefølge efter id

  4. Værktøj til scripting af tabeldata