2012-08-12 44 views
1

我在尝试执行本机查询时遇到了Doctrine的ResultSetMapping问题。Doctrine 2.0结果集映射使用不正确?

$sql = "SELECT id, thesis " 
    . "FROM activity p " 
    . "WHERE MATCH (thesis) AGAINST ('Gun') "; 

$rsm = new \Doctrine\ORM\Query\ResultSetMapping; 
$rsm->addEntityResult('activity\models\Entities\Opinion', 'p'); 
$rsm->addFieldResult('p', 'id', 'id'); 
$rsm->addFieldResult('p', 'thesis', 'thesis'); 

$query = $this->_em->createNativeQuery($sql, $rsm); 

$results = $query->getResult(); 

return $results; 

我知道一个事实,因为首先,有在数据库中有世界“枪”在其中输入SQL方面是找到的东西,如果我改变它,它给了我一个错误到不在数据库中的东西。

这留下了resultsetmapping代码。它不会产生任何错误,但由getResult()返回的数组是空白的。这让我怀疑我做了错误的映射。

你们有什么建议,我可以做些什么来进一步确定问题是什么?

回答

1

原来问题是,如果查询少于4个字母,MATCH AGAINST不起作用。问题是sql后遗症:(

resultsetmapping是完美的工作