1

У меня есть два несвязанных объекта: внешний и внутренний. Мне нужно, чтобы союз выбирал все результаты от сущностей. Я использую ResultSetMapping и Native SQL, чтобы сделать это:Ошибка Symfony2: объект класса Doctrine ORM EntityManager не может быть преобразован в строку

$em = $this->getDoctrine() 
     ->getManager()->getConnection(); 
$rsm = new \Doctrine\ORM\Query\ResultSetMapping(); 
    $rsm->addEntityResult('ExternalBundle:External', 'e'); 
    $rsm->addFieldResult('e', 'id', 'id'); 
    $rsm->addFieldResult('e', 'status', 'status'); 
    $rsm->addFieldResult('e', 'name', 'name'); 
    $rsm->addEntityResult('InternalBundle:Internal', 'i'); 
    $rsm->addFieldResult('i', 'id', 'id'); 
    $rsm->addFieldResult('i', 'status', 'status'); 
    $rsm->addFieldResult('i', 'name', 'name'); 
    $sql = "SELECT e.* 
FROM external_print e 
UNION 
SELECT i.* 
FROM internal_print i"; 
    $objects = $this->$em->createNativeQuery($sql, $rsm)->getResult(); 

Я получаю эту ошибку: Catchable Фатальная ошибка: Объект класса Doctrine \ ORM \ EntityManager не может быть преобразован в строку.

Что нужно исправить?

+0

удалить $ от $ эм: $ this-> эм – viktor77

+0

@ viktor77 теперь говорит Примечание: Не определено свойство: em – user3793667

+0

Попробуйте следующее: $ em = $ this-> container-> get ('doctrine') -> getManager(); –

ответ

1

У вас есть код ошибки вместо

$objects = $this->$em->createNativeQuery($sql, $rsm)->getResult();

использования только

$objects = $em->createNativeQuery($sql, $rsm)->getResult();

 Смежные вопросы

  • Нет связанных вопросов^_^