尝试进行原生查询时,我遇到了Doctrine的ResultSetMapping问题。
$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方面正在找东西的事实,因为首先,数据库中有条目,其中包含世界“枪”,如果我将其更改为不是某些东西,它会给我一个错误在数据库中。
留下结果集映射代码。它没有产生任何错误,但getResult()返回的数组是空白的。这让我怀疑我的映射不正确。
你们有什么建议可以做些什么来进一步确定问题是什么?
答案 0 :(得分:1)
事实证明,如果查询少于4个字母,则MATCH AGAINST不起作用。问题是sql afterall :(
结果集映射工作正常。