Mysql
 sql >> база данни >  >> RDS >> Mysql

Обща грешка:не можа да се извика конструктор на клас'

Както е посочено в документацията:

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.

същият аргумент е наличен за setFetchMode

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

Бих приложил това съответно:

Първо добавете свойство $ctorArgs към \Core\Model със стойност по подразбиране null .Последва подмяна на текущия setFetchMode обаждания

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

И накрая добавете свойство $ctorArgs към \App\Models\Admin\Photo със стойност по подразбиране array("picture") .

Това ще каже на кода, че вашият конструктор очаква параметъра $picture .

Бих помислил да използвам константа вместо свойство, но това зависи от това как решите да приложите това.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql подреждане на заявката за присъединяване по две колони

  2. MySQL с помощта на Sum и Case

  3. Задайте резултата от MySQL заявка в JComboBox

  4. Операции с непълни дати в MYSQL

  5. Форматирайте MySQL с помощта на CONCAT