1

在尝试执行本机查询时,我遇到了 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() 返回的数组是空白的。这让我怀疑我的映射不正确。

你们对我可以做些什么来进一步确定问题所在有什么建议吗?

4

1 回答 1

1

事实证明,如果查询少于 4 个字母,则 MATCH AGAINST 不起作用。问题毕竟是 sql :(

结果集映射工作正常。

于 2012-08-12T17:49:43.680 回答