Возврат массива объектов из PDO
у меня есть класс PHP (POJO_FOO
), который сопоставляется с таблицей (TABLE_FOO
).
например, одна строка равна одному объекту этого класса.
теперь я пишу менеджер, который возвращает массив таких объектов, соответствующих определенному запросу. Используя PDO
, Как я могу вернуть массив объектов ?
когда я делаю простой fetchAll
, он возвращает массив (количество результатов) ассоциативный массив (column
=>value
). Есть ли опция в fetchALL
что может дать мне результат в виде массива объектов ?
1 ответов
вы можете использовать PDO:: FETCH_CLASS для гидратации вашего класса с вашими данными:
return $pdo->query('SELECT * FROM tablefoo')->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,'POJO_FOO');
также полезно использовать PDO::FETCH_CLASS|PDO:: FETCH_PROPS_LATE, потому что это делает конструкцию объекта более согласованной. Habitualy ваш конструктор вызывается прежде всего. Если вы не используете FETCH_PROPS_LATE, он будет вызван после того, как ваши свойства будут увлажнены.