ОБНОВЛЕНИЕ
Учитывая ваше редактирование, проблема вовсе не в прокси-объектах, а в том, как вы используете объект $ query.
$query->getResult()
вернет массив результатов. В таком случае, когда вы ограничиваете результирующий набор максимум 1 строкой, он возвращает массив с одной записью, но все же массив. Естественно, Twig задыхается от этого при попытке использовать методы доступа.
То, что вы хотите сделать, это использовать $query->getSingleResult()
вместо этого. Обратите внимание, что Doctrine будет выдавать неуникальное исключение для результата, если запрос возвращает более одной строки, поэтому вы должны обязательно использовать его с setMaxResults(1)
, как если бы запрос мог вернуть несколько результатов.
КОНЕЦ ОБНОВЛЕНИЯ
Из документации на справочные прокси :
Здесь $ item на самом деле является экземпляром прокси-класса, который был
генерируется для класса Item, но ваш код не нуждается в уходе. В
факт это не должно волновать . Прокси-объекты должны быть прозрачными для вашего
код.
Подчеркните их. Прокси должны быть прозрачными для вашего кода и существовать для повышения производительности, где это возможно; однако, если вам необходимо срочно загрузить часть запроса, вы можете либо установить режим выборки в файле конфигурации вашего объекта, либо проверить этот раздел документов:
$query = $em->createQuery("SELECT u FROM MyProject\User u");
$query->setFetchMode("MyProject\User", "address", "EAGER");
$query->execute();