Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP - Vorbereitetes stmt in Klasse holen:Fatal Error class not found

Wenn Ihre Category class sich in einem Namespace befindet, müssen Sie einen vollständig qualifizierten Klassennamen an fetchAll übergeben .

Im Moment versucht PDO, in die Klasse Category zu holen im Root-Namensraum. Es existiert nicht. Sie müssen PDO den Namensraum mitteilen:

$stm->fetchAll(\PDO::FETCH_CLASS, 'Vendor\\Package\\Category');

Oder verwenden Sie einen __NAMESPACE__ Konstante, wenn es das einfacher macht (und richtig ist):

$stm->fetchAll(\PDO::FETCH_CLASS, __NAMESPACE__ . '\\Category');

Oder, noch besser, verwenden Sie ::class von PHP 5.5+ konstant, um den vollständig qualifizierten Klassennamen zu erhalten.

use Acme\Package\Category;
$stm->fetchAll(\PDO::FETCH_CLASS, Category::class);