Я занимаюсь разработкой базового веб-приложения в своей работе. Мне нужно работать с некоторыми представлениями sql-сервера. Я принял решение попробовать собственные запросы, и как только вы протестировали его функциональность, попробуйте написать несколько классов, чтобы закодировать все запросы и забыть о своей реализации.Основы базовых запросов Symfony2 Doctrine2
Итак, моя проблема: у меня есть Entity в Acme/MyBundle/Entity/View1.php. У этого объекта есть все атрибуты, соответствующие таблице, а также это геттеры и сеттеры. Я предполагаю, что эта сущность хорошо сопоставлена с БД (работа над доктриной без особых усилий).
Моя цель - позволить контроллеру получить некоторые данные из этих представлений (SQL SERVER) и вернуть их в представление (веточка), чтобы он мог отображать информацию.
$returned_atts = array(
"att1" => $result[0]->getAttribute1(), //getter from the entity
"att2" => $result[1]->getAttribute2(), //getter from the entity
);
return $returned_atts;`$sql = "SELECT [Attribute1],[Attribute2],[Attribute3] FROM [TEST].[dbo].[TEST_VIEW1]"; //THIS IS THE SQL SERVER QUERY
$rsm = new ResultSetMapping($em); //result set mappin object
$rsm->addEntityResult('Acme\MyBundle\Entity\View1', 'view1'); //entity which is based on
$rsm->addFieldResult('view1', 'Attribute1', 'attribute1'); //only choose these 3 attributes among the whole available
$rsm->addFieldResult('view1', 'Attribute2', 'attribute2');
$rsm->addFieldResult('view1', 'Attribute3', 'attribute3');
//rsm built
$query = $em->createNativeQuery($sql, $rsm); //execute the query
$result = $query->getResult(); //get the array
Должна быть предусмотрена возможность вернуть массив прямо из метода getResult()
не так ли? И что убивает меня, как я могу получить доступ к атрибуту1, attriute2 и attriute2?
$returned_atts = array(
"att1" => $result[0]->getAttribute1(), //getter from the entity
"att2" => $result[1]->getAttribute2(), //getter from the entity
);
return $returned_atts;`