Ако вашата Category
класът е в пространство от имена, ще трябва да предадете напълно квалифицирано име на клас в fetchAll
.
В момента PDO се опитва да извлече в класа Category
в основното пространство от имена. То не съществува. Трябва да кажете на PDO за пространството от имена:
$stm->fetchAll(\PDO::FETCH_CLASS, 'Vendor\\Package\\Category');
Или използвайте __NAMESPACE__
постоянно, ако това го прави по-лесно (и е правилно):
$stm->fetchAll(\PDO::FETCH_CLASS, __NAMESPACE__ . '\\Category');
Или, още по-добре, използвайте ::class
на PHP 5.5+ константа за получаване на пълното име на класа.
use Acme\Package\Category;
$stm->fetchAll(\PDO::FETCH_CLASS, Category::class);