PDO FETCH_CLASS и проблема с пространством имен - PullRequest
4 голосов
/ 27 октября 2011

Я пытаюсь использовать PDO :: FETCH_CLASS для объекта.Я использую пространство имен и просто ввожу:

$result = $query->fetchAll(\PDO::FETCH_CLASS, 'Product');

или

$result = $query->fetchAll(\PDO::FETCH_CLASS, '\Product');

, в результате PHP ищет Product.php в корне приложения.

Я могу успешно создать новый продукт, используя:

 $product = new Product();

Так что я знаю, что мой интервал имен работает.

Разве это невозможно?Или мне нужно сначала создать экземпляр продукта, а затем заполнить его после запроса?

1 Ответ

8 голосов
/ 27 октября 2011

Я подозреваю, что PDO не ищет псевдонимы классов и не разрешает текущее пространство имен.Поэтому вы должны передать его явно:

= $query->fetchAll(\PDO::FETCH_CLASS,  __NAMESPACE__ . '\\Product');

Точность: обратите внимание, что хотя одиночный обратный слеш работает, в одинарных кавычках он предназначен для экранирования буквальных одинарных кавычек и .1006 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...