我正在使用php 5.6构建zend框架2应用程序
我使用doctrine2作为数据库相关代码。 我为数据库中的每个表创建了Yaml文件。
我试图调用查询并返回结果。
我使用以下代码:
$query=<<<EOS
QUERY...
EOS;
$objectManager=$this->getObjectManager();
$rsm = new ResultSetMapping();
$rsm->addEntityResult( 'MyAlcoholist\Entity\DrinkFlavorInfo','u');
$rsm->addFieldResult('u','drink_type_name','drinkTypeName');
$rsm->addFieldResult('u','drink_brand_name','drinkBrandName');
$rsm->addFieldResult('u','drimk_company_name','drinkCompanyName');
$rsm->addFieldResult('u','drink_flavor_type_name','drinkFlavorTypeName');
$query = $objectManager->createNativeQuery($query,$rsm);
$query->setParameter(1, $id);
$drinkFlavors = $query->getResult();
die(var_export($drinkFlavors,1));
我创建了一个名为DrinkFlavorInfo的类,其中包含变量的getter和setter,但由于我将doctrine配置为使用yaml,因此它正在搜索yaml文件。 在yaml配置中,其中一个属性是table_name,并且没有表,我只是尝试创建一个包含返回值的类。我怎么能这样做?
答案 0 :(得分:1)
好吧所以看来我应该如何定义列并执行查询:
$objectManager=$this->getObjectManager();
$rsm = new ResultSetMapping();
$rsm->addScalarResult('drink_brand_name','drinkBrandName');
$rsm->addScalarResult('drink_type_name','drinkTypeName');
$rsm->addScalarResult('drink_flavor_type_name','drinkFlavorTypeName');
$rsm->addScalarResult('drink_company_name','drinkCompanyName');
$query = $objectManager->createNativeQuery($query,$rsm);
$query->setParameter(1, $id);
$drinkFlavors = $query->getArrayResult();
die(var_export($drinkFlavors,1));
这有效:)